Anagram 2 Lookup table
#include <bits/stdc++.h>
using namespace std;
bool isAnagram(string str1, string str2)
{
if (str1.length() != str2.length())
return false;
// table for counting frequency
int frequency[26] = {0};
// count characters in first string
for (char ch : str1)
frequency[tolower(ch) - 'a']++;
// cancel out characters in second string
for (char ch : str2)
frequency[tolower(ch) - 'a']--;
// check if all cancelled out and not too many cancelled out
for (int i = 0; i < 26; i++)
// if not properly cancelled out
if (frequency[i] != 0)
// not anagram
return false;
// else is anagram
return true;
}
int main()
{
string str1, str2;
cout << "Enter first string: ";
cin >> str1;
cout << "Enter second string: ";
cin >> str2;
cout << str1 << " is anagram of " << str2 << " is ";
cout << boolalpha << isAnagram(str1, str2) << endl;
return 0;
}
Last updated