样例全过,测试全炸,请求debug。
查看原帖
样例全过,测试全炸,请求debug。
946050
congtianyi_1203楼主2025/6/27 17:01

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main() {
	int n;
	cin >> n;
	vector<string> A, B;
	for (int i = 0; i < n; i++) {
		string a, b;
		cin >> a >> b;
		A.push_back(a);
		B.push_back(b);
	}
	int len = 0;
	string s;
	cin >> s;
	for (int i = 0; i < s.size(); i++) {
		if (s[i] == '!' or s[i] == '(' or s[i] == ')' or s[i] == '-' or s[i] == ',' or s[i] == '.' or s[i] == '[' or s[i] == ']' or s[i] == '{' or s[i] == '}' or s[i] == '/' or s[i] == '|' or s[i] == '"' or s[i] == '\'' or s[i] == ';' or s[i] == ':' or s[i] == '\\' or s[i] == '?' or s[i] == '<' or s[i] == '>') {
			bool is = true;
			for (int j = 0; j < n; j++) {
				if (A[j] == s.substr(i - len, len)) {
					cout << B[j] << s[i];
					len = 0;
					is = false;
					break;
				}
			}
			if (is) {
				if (s.substr(i - len, len + 1) == "!" or s.substr(i - len, len + 1) == "(" or s.substr(i - len, len + 1) == ")" or s.substr(i - len, len + 1) == "-" or s.substr(i - len, len + 1) == "," or s.substr(i - len, len + 1) == "." or s.substr(i - len, len + 1) == "[" or s.substr(i - len, len + 1) == "]" or s.substr(i - len, len + 1) == "{" or s.substr(i - len, len + 1) == "}" or s.substr(i - len, len + 1) == "/" or s.substr(i - len, len + 1) == "|" or s.substr(i - len, len + 1) == "'" or s.substr(i - len, len + 1) == "\"" or s.substr(i - len, len + 1) == ";" or s.substr(i - len, len + 1) == ":" or s.substr(i - len, len + 1) == "\\" or s.substr(i - len, len + 1) == "?" or s.substr(i - len, len + 1) == "<" or s.substr(i - len, len + 1) == ">") {
					cout << s[i];
				} else {
					cout << "-UNK-" << s[i];
				}
			}
		} else {
			len++;
		}
	}
	int i = s.size();
	if (s[i] == '!' or s[i] == '(' or s[i] == ')' or s[i] == '-' or s[i] == ',' or s[i] == '.' or s[i] == '[' or s[i] == ']' or s[i] == '{' or s[i] == '}' or s[i] == '/' or s[i] == '|' or s[i] == '"' or s[i] == '\'' or s[i] == ';' or s[i] == ':' or s[i] == '\\' or s[i] == '?' or s[i] == '<' or s[i] == '>') {
		return 0;
	}
	bool is = true;
	for (int j = 0; j < n; j++) {
		if (A[j] == s.substr(s.size() - len, len)) {
			cout << B[j];
			len = 0;
			is = false;
			break;
		}
	}
	if (s.substr(i - len, len + 1) == "!" or s.substr(i - len, len + 1) == "(" or s.substr(i - len, len + 1) == ")" or s.substr(i - len, len + 1) == "-" or s.substr(i - len, len + 1) == "," or s.substr(i - len, len + 1) == "." or s.substr(i - len, len + 1) == "[" or s.substr(i - len, len + 1) == "]" or s.substr(i - len, len + 1) == "{" or s.substr(i - len, len + 1) == "}" or s.substr(i - len, len + 1) == "/" or s.substr(i - len, len + 1) == "|" or s.substr(i - len, len + 1) == "'" or s.substr(i - len, len + 1) == "\"" or s.substr(i - len, len + 1) == ";" or s.substr(i - len, len + 1) == ":" or s.substr(i - len, len + 1) == "\\" or s.substr(i - len, len + 1) == "?" or s.substr(i - len, len + 1) == "<" or s.substr(i - len, len + 1) == ">") {
		cout << s[i];
	} else if (is) {
		cout << "UNK";
	}
	return 0;
}
2025/6/27 17:01
加载中...