用C语言给出一个字符串 � S,每次选择一个字母,然后删除 � S 中所有该字母。执行若干次后,若字符串变为"CAT",则 � S 为喵性字符串。 蒜头君喜欢研究字符串,他在白纸上写下了 � T 个字符串,然后想判断每个字符串 � � S i 是否为喵性字符串,请你帮帮他。
时间: 2024-01-22 16:19:11 浏览: 62
可以使用 C 语言来解决这个问题。具体的思路是,遍历字符串,统计每个字母出现的次数,然后依次尝试删除每个字母,如果删除后字符串变为"CAT",则说明该字符串是喵性字符串。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int is_cat(char *s) {
int count[26] = {0}; // 统计每个字母出现的次数
int len = strlen(s);
int i, j;
for (i = 0; i < len; i++) {
count[s[i] - 'A']++;
}
while (count['C' - 'A'] > 0 && count['A' - 'A'] > 0 && count['T' - 'A'] > 0) {
// 删除 C、A、T 字母
count['C' - 'A']--;
count['A' - 'A']--;
count['T' - 'A']--;
}
// 判断最终字符串是否为 "CAT"
if (count['C' - 'A'] == 0 && count['A' - 'A'] == 0 && count['T' - 'A'] == 0) {
return 1;
} else {
return 0;
}
}
int main() {
char str[MAX_LEN];
int t;
scanf("%d", &t);
while (t--) {
scanf("%s", str);
if (is_cat(str)) {
printf("YES\n");
} else {
printf("NO\n");
}
}
return 0;
}
```
该代码首先读入字符串的个数,然后依次判断每个字符串是否为喵性字符串。对于每个字符串,首先统计每个字母出现的次数,然后依次尝试删除 C、A、T 三个字母,直到无法再删除为止。最后判断剩余的字母是否为零即可。
阅读全文