赞
踩
解析:模拟法,(字典翻译部分用map会更有效率一些)
详见代码:
- #include <bits/stdc++.h>
- using namespace std;
- int n;
- string a[105];
- string b[105];
- string s;
- int main() {
- cin >> n;
- for(int i = 1; i <= n; i++) {
- cin >> a[i] >> b[i];
- }
- cin >> s;
- string t = "";
- for(int i = 0; i <= s.length(); i++) {
- if (s[i] >= 'a' && s[i] <= 'z') {//是字母
- t += s[i];//接上
- }
- //如果不是字母或者最后一个字符
- if (s[i] < 'a' || s[i] > 'z' || i == s.length() - 1) {
- if (t != "") {//如果有单词等待翻译
- string f = "UNK";//默认找不到
- for(int j = 1; j <= n; j++) {//枚举字典
- if (a[j] == t) {//找到
- f = b[j];//翻译
- }
- }
- cout << f;//输出翻译
- }
- if (s[i] < 'a' || s[i] > 'z') {//如果不是字母
- cout<<s[i];//输出
- }
- t="";//清空单词
- }
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。