1 solutions

  • 0
    @ 2025-11-27 11:58:27

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    string s, tmp;
    struct dictionary {
    	string a, b;
    } Q[102];
    int main() {
    	cin >> n;
    	for (int i = 1; i <= n; i++)cin >> Q[i].a >> Q[i].b;
    	cin >> s;
    	s += '0';
    	for (int i = 0; i < s.length(); i++) {
    		if (s[i] >= 'a' && s[i] <= 'z')tmp += s[i];
    		else {
    			if (s[i - 1] >= 'a' && s[i - 1] <= 'z') {//在多重标点时不用判断
    				int flag = 0;
    				for (int j = 1; j <= n; j++) {
    					if (tmp == Q[j].a) {
    						tmp = Q[j].b;
    						flag = 1;
    						break;
    					}
    				}
    				if (flag == 0)cout << "UNK";
    				else {
    					cout << tmp;
    				}
    				tmp = "";//将字符串清空
    			}
    			if (s[i] != '0')cout << s[i];
    		}
    	}
    	return 0;
    }
    
    • 1

    Information

    ID
    81
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By