Scu*_*der 1 c letter find-occurrences
所以我有一个由 N 个字母“a”或“b”组成的字符串 S。如果 A 的所有出现都在 b 的所有出现之前,则应返回 1,否则返回 0。
B 不需要出现在 S 中,A 不需要出现在 S 中
例如
S='aabbb' returns 1
S = 'ba' returns 0
S = 'aaa' returns 1
S= 'b' returns 1
Run Code Online (Sandbox Code Playgroud)
所以我的方法是在字符串上使用 for 循环并检查 b 是否出现在 a 之前,如下所示:
char newstr[10] = "aabbba"; //should return 0
int len = strlen(newstr);
for (int i = 0; i < len+1; i++) {
printf("%c", newstr[i]);
if (newstr[i] < 'b') {
printf("1");
}
else {
printf("0");
}
}
Run Code Online (Sandbox Code Playgroud)
输出是a1a1b0b0b0a1 1
So..它部分检测 a 是否在 b 之前,但不是完全正确的方式。
我有一个由 N 个字母 'a' 或 'b' 组成的字符串 S
如果 A 的所有出现都在 b 的所有出现之前,则应返回 1,否则返回 0。
所以字符串里面不允许有序列ba
。所以就:
if (strstr(newstr, "ba") == NULL) { printf("1\n"); } else { printf("0\n"); }
Run Code Online (Sandbox Code Playgroud)
要不就:
printf("%d\n", !strstr(newstr, "ba"));
Run Code Online (Sandbox Code Playgroud)