社区讨论

求助,符号似乎不输出

B3927[GESP202312 四级] 小杨的字典参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mhjrmoa0
此快照首次捕获于
2025/11/04 07:22
4 个月前
此快照最后确认于
2025/11/04 07:22
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e2 + 7;
int n, j;
string s;
struct node{
	string a;
	string b;
}a[N];
int l(string t){
	for(int i = 1; i <= n; i ++){
		if(a[i].a == t) return i;
	}
	return 0;
}
void solve(){
	cin >> n;
	for(int i = 1; i <= n; i ++){
		cin >> a[i].a >> a[i].b;
	}
	cin >> s;
	for(int i = 0; i < s.size(); i ++){
		string temp;
		if(!(s[i] >= 'a' && s[i] <= 'z')){
			cout << s[i];
			continue;
		}
		for(j = i; j < s.size(); j ++){
			if(!(s[j] >= 'a' && s[j] <= 'z')) break;
			temp += s[j];
		}
		int where = l(temp);
		if(where > 0) cout << a[where].b;
		else cout << "UNK";
		i = j;
	}
}
signed main(){
	solve();
	return 0;
}

B3927 [GESP202312 四级] 小杨的字典

题目描述

在遥远的星球,有两个国家 A 国和 B 国,他们使用着不同的语言:A 语言和 B 语言。小杨是 B 国的翻译官,他的工作是将 A 语言的文章翻译成 B 语言的文章。
为了顺利完成工作,小杨制作了一本字典,里面记录了 NN 个 A 语言单词对应的 B 语言单词,巧合的是,这些单词都 由地球上的 26 个小写英文字母组成。
小杨希望你写一个程序,帮助他根据这本字典翻译一段 A 语言文章。这段文章由标点符号 !()-.[].{}\|;:'",./?<> 和一些 A 语言单词构成,每个单词之间必定由至少一个标点符号分割,你的程序需要把这段话中的所有 A 语言单词替换成它的 B 语言翻译。特别地,如果遇到不在字典中的单词,请使用大写 UNK 来替换它。
例如,小杨的字典中包含 22 个 A 语言单词 abcd,它们的 B 语言翻译分别为 adef,那么我们可以把 A 语言文章 abc.d.d.abc.abcd. 翻译成 B 语言文章 a.def.def.a.UNK. 其中,单词 abcd 不在词典内,因此我们需要使用 UNK 来替换它。

输入格式

第一行一个整数 NN,表示词典中的条目数。保证 N100N \le 100
接下来 NN 行,每行两个用单个空格隔开的字符串 AABB ,分别表示字典中的一个 A 语言单词以及它对应的 B 语言翻译。保证所有 AA 不重复;保证 AABB 的长度不超过 1010
最后一行一个字符串 SS ,表示需要翻译的 A 语言文章。保证字符串 SS 的长度不超过 10001000,保证字符串 SS 只包含小写字母以及标点符号 !()-.[].{}\|;:'",./?<>

输出格式

输出一行,表示翻译后的结果。

输入输出样例 #1

输入 #1

CPP
2
abc a
d def
abc.d.d.abc.abcd

输出 #1

CPP
a.def.def.a.UNK

输入输出样例 #2

输入 #2

CPP
3
abc a
d def
abcd xxxx
abc,(d)d!-abc?abcd

输出 #2

CPP
a,(def)def!-a?xxxx

输入输出样例 #3

输入 #3

CPP
1
abcdefghij klmnopqrst
!()-[]{}\|;:'",./?<>abcdefghijklmnopqrstuvwxyz

输出 #3

CPP
!()-[]{}\|;:'",./?<>UNK

回复

0 条回复,欢迎继续交流。

正在加载回复...