1339

来源:互联网 发布:mac安装win10 不断重启 编辑:程序博客网 时间:2024/04/30 02:51

紫书上例题4-1;这道题题意说是排序,其实不用,每个字母的位置并不重要,重要的是每个字母出现的次数,若两个字符串里的每个不重复字母的个数都相等,则不管怎么排,两个字符串总能相等;

#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <iomanip>#include <algorithm>using namespace std;void ssor(int *s){    int t,i,j;    int len=26;    for(int i=0;i<len;i++){        for(int j=i+1;j<len;j++)          if(s[i]>s[j]){            t=s[i];s[i]=s[j];s[j]=t;          }    }}int main(){    string s1,s2;    while(cin>>s1>>s2){        int a[100],b[100];        int len1=s1.length(),len2=s2.length();        memset(a,0,sizeof(a));        memset(b,0,sizeof(b));        if(len1!=len2){cout<<"NO"<<endl;}        else{            for(int i=0;i<len1;i++){                a[s1[i]-'A']++;//求出字符串s1中不重复字符的个数                b[s2[i]-'A']++;//求出字符串s2中不重复字符的个数            }            ssor(a); ssor(b);            int flag=1;            for(int i=0;i<26;i++){              if(a[i]!=b[i])                flag=0;            }            if(flag==1)              cout<<"YES"<<endl;            else              cout<<"NO"<<endl;        }    }    return 0;}


0 0
原创粉丝点击