Cracking The Coding Interview 1.4

时间:2023-03-09 22:01:29
Cracking The Coding Interview 1.4
//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;
}