1 条题解

  • 0
    @ 2025-8-7 17:37:46

    也是肝了半个小时而已

    #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
    上传者