1 条题解
-
0
也是肝了半个小时而已#include<bits/stdc++.h> using namespace std; string a[1001]; //定义数组存原来的单词 string b[1001]; //定义数组存放转化后的单词 int n; //定义变量 int main(){ cin>>n; //输入 for(int i=1;i<=n;i++){ string x,y; cin>>x>>y; a[i]=x; b[i]=y; } //输入 string s,s2=""; //初始化为空 cin>>s; //输入 string t="";//空 s+="\n"; //如果不加换行的话最后一个单词是无法处理的 for(int i=0;i<s.size();i++){ //遍历所有字符 if(s[i]>='a' && s[i]<='z'){ //可用isalpha代替 t+=s[i]; //加上 }else{ //遇到符号 if(t!=""){ //判空 int j=1; //循环 bool f=0; //布尔 for(;j<=n;j++){ //再遍历 if(a[j]==t){ //如果是 f=1; //你过关! break; //不结束根本不输出 } } if(f){ //判断 s2+=b[j]; //记录转化后的单词 }else{ s2+="UNK"; //UNKUNK } t=""; //你不初始化的话就等着输出UNK吧! } s2+=s[i]; //别忘了符号 } } cout<<s2; //输出成品 return 0; //完美 }
- 1
信息
- ID
- 1334
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者