Check if a string is an anagram
/*
* Anagram.cpp
*
* Created on: Apr 10, 2012
* Author: Kiran Hegde
*/
#include <string>
#include <iostream>
using namespace std;
bool isAnagram(string &s1, string &s2) {
int letters[256];
for (int i=0; i<256; i++) {
letters[i] = 0;
}
for(unsigned int i=0; i<s1.length(); i++) {
letters[(int)s1[i]]++;
}
for (unsigned int i=0; i<s2.length(); i++) {
if (--letters[(int)s2[i]] < 0)
return false;
}
return true;
}
/**
* Test the function
*/
int main() {
string s1 = string("servant");
string s2 = string("taverns");
cout << "s1 = " << s1 << " is " << (isAnagram(s1, s2)? "":"NOT") << " anagram of s2 = "<< s2 << endl;
s1 = string("tearsdev");
s2 = string("traverse");
cout << "s1 = " << s1 << " is " << (isAnagram(s1, s2)? "":"NOT") << " anagram of s2 = "<< s2 << endl;
return 0;
}