#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main(int argc, char *argv[])
{
char a[100];
char b[100];
int i,j,k,t2[100];
char t1[100];
int flag=1;
scanf("%s",a);
scanf("%s",b);
int a1=strlen(a);
int b1=strlen(b);
if(a1!=b1){//判断字符串长度是否相等
printf("NO");
}else{
t1[0]=a[0];
t2[0]=1;
j=1;
for(i=1;i<a1;i++){//算出str1中每个字母的个数
for(k=0;k<i;k++){
if(t1[k]==a[i]){
t2[k]++;
break;
}
if(t1[k]!=a[i]&&k==i-1){
t1[j]=a[i];//t1数组存的是字母
t2[j]=1;//t2数组存的是这个字母所对应的个数
j++;
}
}
}
for(i=0;i<a1;i++){
for(k=0;k<j;k++){
if(a[k]==a[i]){//在str中遇到一个字母,t2减1
t2[k]--;
break;
}
}
}
for(i=0;i<j;i++){
if(t2[i]!=0){//t2数组出现不为0,说明字母个数不一样
flag=0;
}
}
if(flag==0){
printf("NO");
}
if(flag==1){
printf("YES");
}
}
return 0;
}
蓝桥云课-确定字符串是否是另一个的排列-c满分题解
于 2024-03-27 17:58:38 首次发布