C++实现判断两个单词是否为变位词
如果两个单词中出现的字母相同,并且每个字母出现的次数也相同,那么这两个单词就称为变位词。完成一个函数判断输入的两个字符串是不是互为变位词
#include<iostream>
using namespace std;
bool IsExchangeWord(char* str1,char* str2)
{
if(str1==NULL||str2==NULL)
return false;
const int hashsize=256;
int hashtable[hashsize];
for(int i=0;i<hashsize;i++)
hashtable[i]=0;
char* hashkey1=str1;
while(*hashkey1!='\0')
hashtable[*(hashkey1++)]++;
char* hashkey2=str2;
while(*hashkey2!='\0')
hashtable[*(hashkey2++)]--;
for(int i=0;i<hashsize;i++)
if(hashtable[i]!=0)
return false;
return true;
}
int main()
{
char str1[]="silent";
char str2[]="listen";
bool result=IsExchangeWord(str1,str2);
cout<<result<<endl;
return 0;
}