链接:CF1744A
解释
这道题目就是说每个测试都有一个数组和一个同样长的字符串,每次可以把数组中的一个数批量换成一个小写英文字母,问给定的组合是否合法?
思路
建一个数组$x$,相当于一个表,在 $x_i$ 上记录 $i$。表示的字母,只要以后读到 $x_i$ 上的值不等于当前的就直接 NO
。
代码
时间 15ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#include
using namespace std;
void s() {
int n;
cin >> n;
int z[n];
for (int i = 0; i > z[i];
string st;
cin >> st;
int map[55];
for (int i = 0; i 55; i++) map[i] = -1;
for (int i = 0; i
if (map[z[i]] == -1) {
map[z[i]] = st[i] - 'a';
} else {
if (map[z[i]] != st[i] - 'a') {
cout "NO"
return;
}
}
}
cout "YES"
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
while (n--) {
s();
}
return 0;
}
|
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=32jh0ae4lqsko
您好~我是腾讯云开发者社区运营,关注了您分享的技术文章,觉得内容很棒,我们诚挚邀请您加入腾讯云自媒体分享计划。完整福利和申请地址请见:https://cloud.tencent.com/developer/support-plan
作者申请此计划后将作者的文章进行搬迁同步到社区的专栏下,你只需要简单填写一下表单申请即可,我们会给作者提供包括流量、云服务器等,另外还有些周边礼物。∠( ᐛ 」∠)_