您的位置:首页 > 其它

Cracking The Coding Interview 1.4

2014-04-01 16:47 344 查看
//Write a method to decide if two strings are anagrams or not.
//
//	变位词(anagrams)指的是组成两个单词的字符相同,但位置不同的单词。比如说, abbcd和abcdb就是一对变位词。
//
//  使用一个固定数组大小记录各个字符出现的次数,同1.1
#include <iostream>
using namespace std;
bool isAnagrams(const char *a, const char *b)
{
int asize = strlen(a);
int bsize = strlen(b);
if (asize != bsize)
{
return false;
}
int isAna[26] = {0};
for (int i =0; i <asize; i++)
{
int t = a[i] - 'a';
isAna[t]++;
t =  b[i] - 'a';
isAna[t]--;
}
bool isA = true;
for ( int j=0; j <26; j++)
{
if (isAna[j]!=0)
{
isA = false;
}
}
return isA;

}

int main()
{
char *s1 = "fuckyou";
char *s2 = "youfuck";
cout<<isAnagrams(s1,s2);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: