题目链接:http://poj.org/problem?id=2159
我的代码
#include <cstdio>
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int num1[27], num2[27];
char a[105], b[105];
int main()
{
int lena, lenb, j = 0, k = 0, dai = 0, count = 0;
//fgets(a, 100, stdin);
//fgets(b, 100, stdin);
scanf("%s%s",a,b);
if (lena != lenb) { cout << "NO" << endl; return 0; }
for (int i = 0; i < strlen(a); i++) {
num1[a[i] - 'A']++;
num2[b[i] - 'A']++;
}
sort(num1, num1 + 26);
sort(num2, num2 + 26);
for (int i = 0; i < 26; i++) {
if (num1[i] != num2[i]) {
printf("NO\n");
return 0;
}
}
printf("YES\n");
return 0;
}
这个是可以AC的!但是如果把字符串a,b的读取方式换成被注释掉的fgets那种,就会wrong answer 请教一下这是为什么,难道以后没有空格回车的输入都要尽量用scanf来弄吗,我以前都是fgets没有出过问题