文章
7
粉丝
502
获赞
2
访问
16.6k
明明编译器输出的是正确值,但是OJ判断我输出超时
#include <stdio.h>
#include <string.h>
char s[100];
char t[100];
int main() {
while (1) {
fgets(s, sizeof(s), stdin);
if (s[0] == '#' || s[0] == '\n') // 检查是否为 '#' 或空行以退出
break;
fgets(t, sizeof(t), stdin);
int ls = strlen(s);
int lt = strlen(t);
// 从字符串中去除换行符
if (s[ls - 1] == '\n')
s[--ls] = '\0';
if (t[lt - 1] == '\n')
t[--lt] = '\0';
for (int i = 0; i < ls; i++) {
int cnt = 0;
for (int j = 0; j < lt; j++) {
if (s[i] == t[j])
cnt++;
}
printf("%c %d\n", s[i], cnt);
}
}
return 0;
}
登录后发布评论
把第一个输入写到while里,这样读到文件末尾时会自动结束。
修改代码如下