1 条题解

  • 0
    @ 2025-9-6 13:38:22

    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

    信息

    ID
    5533
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者