uva1339
作者:互联网
#include<cstdio> #include<cstdlib> #include<ctype.h> #include<algorithm> #include<cstring> using namespace std; const int maxn = 100 + 5; char line1[maxn], line2[maxn]; int cnt1[26],cnt2[26]; bool read_lines() { if(!(scanf("%s",line1)==1)) { //printf("%s\n",line1); return false; } else { scanf("%s",line2); //printf("%s %s\n",line1,line2); return true; } } bool judge() { memset(cnt1,0,sizeof(cnt1)); memset(cnt2,0,sizeof(cnt2)); int pos=0; for(;isalpha(line1[pos])&&isalpha(line2[pos]);pos++) { cnt1[line1[pos]-'A']++; cnt2[line2[pos]-'A']++; } if(isalpha(line1[pos]||isalpha(line2[pos]))) { return false; } //printf("%d\n",pos); sort(cnt1,cnt1+26); sort(cnt2,cnt2+26); for(int i=0;i<26;i++) { if(cnt1[i]!=cnt2[i]) return false; } return true; } int main() { #ifdef LOCAL freopen("input.txt","r",stdin); #endif while(read_lines()) { if(judge()) { printf("YES\n"); } else { printf("NO\n"); } } return 0; }
此题思路:先统计各个字母出现的次序,记录在数据结构cnt中,然后再给cnt排序,如果两个cnt是一样的,那么输出YES
所需要注意的问题
1>sort函数,数组和vector都可以使用,但函数的参数是指针
2>尽量不要使用getchar(), 在考研复试中对时间要求没有那么高,尽量使用string或者char[]
标签:line2,line1,pos,cnt2,cnt1,include,uva1339 来源: https://www.cnblogs.com/TorettoRui/p/10391368.html