1 条题解
-
0
自动搬运
来自洛谷,原作者为

tder
喵喵喵。搬运于
2025-08-24 21:15:58,当前版本为作者最后更新于2024-01-29 10:17:18,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
首先考虑如何分割出每个单词,遍历整个字符串 ,找出每一个标点符号位置,两个标点符号之间的部分 即为一个单词。特别地,最后一个单词可能没有之后的标点符号,因此在原字符串 末尾加上字符 ,最后不输出最后一位即可。
再考虑如何替换,可以用 map 字典将 A 语言与 B 语言的每组对应单词建立索引,可参考 OI Wiki。
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 1e4 + 5; int n; map<string, string> m; string s, ans; signed main() { cin>>n; for(int i = 1; i <= n; i++) { string a, b; cin>>a>>b; m[a] = b; } cin>>s; s += '.'; string t = ""; for(char c : s) { if(c >= 'a' && c <= 'z') t += c; else { if(t != "") { if(m.count(t)) ans += m[t]; else ans += "UNK"; t = ""; } ans += c; } // cout<<c<<" "<<ans<<" "<<t<<endl; } ans.pop_back(); cout<<ans<<endl; return 0; }
- 1
信息
- ID
- 9627
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者