H. 分心的岩宝
解法
由题意得,岩宝做的同一任务不能分开做,即之前做过的任务不能在后面出现,所以只需要判断是否重复出现做同一任务的情况即可
当我们遇到一串连续的字母时,continue,直到有ch[i]!=ch[i+1]的情况,用桶排标记这个字母,然后去判断这个字母在后面是否出现,for枚举一次,即可输出最后的结果。
标程
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
char ch[60];
int f[27];
int main() {
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
cin >> ch;
int flag = 1;
memset(f, 0, sizeof(f));
for (int i = 0; i < n; i++) {
if (ch[i] == ch[i + 1])
continue;
else {
if (f[ch[i] - 'A'] == 1) {
flag = 0;
break;
} else
f[ch[i] - 'A'] = 1;
}
}
if (flag)
puts("Yes");
else
puts("No");
}
请问这里面的f(ch[i]-'A']=1是什么意思