From 8beccb453e810f43f1341dd1a49f40bc2a5451af Mon Sep 17 00:00:00 2001 From: Himanshu Jain Date: Mon, 28 Oct 2019 11:41:54 +0530 Subject: [PATCH] Anagram --- AnagramChecker/anagram_checker.cpp | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 AnagramChecker/anagram_checker.cpp diff --git a/AnagramChecker/anagram_checker.cpp b/AnagramChecker/anagram_checker.cpp new file mode 100644 index 00000000..2517b04f --- /dev/null +++ b/AnagramChecker/anagram_checker.cpp @@ -0,0 +1,50 @@ +// C++ program to check if two strings +// are anagrams of each other +#include +using namespace std; +#define NO_OF_CHARS 256 + +/* function to check whether two strings are anagram of +each other */ +bool areAnagram(char* str1, char* str2) +{ + // Create 2 count arrays and initialize all values as 0 + int count1[NO_OF_CHARS] = { 0 }; + int count2[NO_OF_CHARS] = { 0 }; + int i; + + // For each character in input strings, increment count in + // the corresponding count array + for (i = 0; str1[i] && str2[i]; i++) { + count1[str1[i]]++; + count2[str2[i]]++; + } + + // If both strings are of different length. Removing this + // condition will make the program fail for strings like + // "aaca" and "aca" + if (str1[i] || str2[i]) + return false; + + // Compare count arrays + for (i = 0; i < NO_OF_CHARS; i++) + if (count1[i] != count2[i]) + return false; + + return true; +} + +/* Driver code*/ +int main() +{ + char str1[] = "helloworld"; + char str2[] = "heworldllo"; + if (areAnagram(str1, str2)) + cout << "The two strings are anagram of each other"; + else + cout << "The two strings are not anagram of each other"; + + return 0; +} + +// This is code is contributed by rathbhupendra