Anagrams问题
问题描述
Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。
输入格式:输入有两行,分别为两个单词。
输出格式:输出只有一个字母Y或N,分别表示Yes和No。
输入输出样例
样例输入
Unclear
Nuclear
样例输出
Y
/*
蓝桥杯 Anagrams问题
2291793270@qq.com
jiameng
*/
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
char A[80],B[80];
gets(A);
gets(B);
int len1=strlen(A);
int len2=strlen(B);
int ch;
if(len1!=len2)
cout<<"N";
else
{
for(int i=0;i<len1;i++)
{
if(A[i]>='A'&&A[i]<='Z')
A[i]+=32;
if(B[i]>='A'&&B[i]<='Z')
B[i]+=32;
}
for(int i=0;i<len1-1;i++)
{
for(int j=0;j<len1-1-i;j++)
{
if(A[j]>A[j+1])
{
ch=A[j];
A[j]=A[j+1];
A[j+1]=ch;
}
if(B[j]>B[j+1])
{
ch=B[j];
B[j]=B[j+1];
B[j+1]=ch;
}
}
}
}
if(strcmp(A,B)==0)
cout<<"Y";
else
cout<<"N";
return 0;
}
/*主要思想:全部转化为小写字母,按照ASCLL顺序对单词字母进行排序,
接着使用strcmp函数进行字符串比对*/