2 solutions

  • 3
    @ 2025-6-7 13:45:34
    #include<bits/stdc++.h>
    using namespace std;
    const int N=110;
    string a[N],b[N];
    int main()
    {
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i]>>b[i];
    	}
    	string s;
    	cin>>s;
    //	s=s+".";
    	for(int i=0;i<s.size();i++)
    	{
    		
    		if(s[i]<'a'||s[i]>'z')
    		{
    			cout<<s[i];
    			continue;
    		}
    		int j=i;
    		while(j<s.size()&&s[j]>='a'&&s[j]<='z') j++;
    		j--;
    		string sub=s.substr(i,j-i+1);
    		
    		string res="UNK";
    	//	cout<<sub<<endl;
    		for(int k=1;k<=n;k++)
    		{
    			if(sub==a[k])
    			{
    				res=b[k];
    			}
    		}
    		cout<<res;
    	//	j++; //移动到.的位置 
    	//	cout<<s[j];
    		i=j;//移动到下个单词的位置 
    	}
    } 
    
  • 1
    @ 2026-3-8 9:38:54
    #include<bits/stdc++.h>
    using namespace std;
    string a[1110],b[1110];
    int main()
    {
        int n;cin>>n;
        for(int i=1;i<=n;i++)
            cin>>a[i]>>b[i];
        string s;cin>>s;
        for(int i=0;i<s.size();i++)
        {
            if(s[i]<'a'||s[i]>'z')
            {
                //cout<<i<<endl;
                cout<<s[i];
                continue;
            }
            int j=i;
            while(s[j]<='z'&&s[j]>='a'&&j<s.size()) j++;
            j--;
            //cout<<i<<" "<<j<<endl;
            string s1=s.substr(i,j-i+1);      
            i=j-1;
            string res="UNK";
            for(int k=1;k<=n;k++)
            {
                if(s1==a[k]) res=b[k];
            }
            cout<<res;
            i=j;
        }
        return 0;
    }
    
    • 1

    Information

    ID
    2536
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    (None)
    # Submissions
    20
    Accepted
    8
    Uploaded By