অ্যানাগ্রাম স্ট্রিং হল এমন স্ট্রিং যেখানে সব ক্যারেক্টার অন্য একটি স্ট্রিংয়ে একই সংখ্যক বার উপস্থিত থাকে, যাকে আমরা অ্যানাগ্রাম বলি।
ইউজার দুটি স্ট্রিং ইনপুট দেয়। আমাদের প্রতিটি অক্ষর ('a' থেকে 'z') কতবার উপস্থিত হয়েছে তা গুনে তাদের আপেক্ষিক কাউন্ট তুলনা করতে হবে। একটি স্ট্রিংয়ে একটি অ্যালফাবেটের ফ্রিকোয়েন্সি হল সেটি কতবার উপস্থিত হয়েছে।
যদি দুটি স্ট্রিংয়ে প্রতিটি অ্যালফাবেটের ফ্রিকোয়েন্সি একই হয়, তবে আমরা সেগুলোকে অ্যানাগ্রাম বলতে পারি।
উদাহরণ ১
String 1 − abcd
String 2 − bdac
এই দুটি স্ট্রিংয়ে একই অক্ষরগুলো একবার করে আছে। সুতরাং এগুলো অ্যানাগ্রাম।
উদাহরণ ২
String 1 − programming
String 2 − gramming
আউটপুট − The strings are not anagrams.
উদাহরণ
অ্যানাগ্রাম চেক করার সি প্রোগ্রাম:
#include <stdio.h> int check_anagram(char [], char []); int main(){ char a[1000], b[1000]; printf("Enter two strings\n"); gets(a); gets(b); if (check_anagram(a, b)) printf("The strings are anagrams.\n"); else printf("The strings aren't anagrams.\n"); return 0; } int check_anagram(char a[], char b[]){ int first[26] = {0}, second[26] = {0}, c=0; // Calculating frequency of characters of the first string while (a[c] != '\0') { first[a[c]-'a']++; c++; } c = 0; while (b[c] != '\0') { second[b[c]-'a']++; c++; } // Comparing the frequency of characters for (c = 0; c < 26; c++) if (first[c] != second[c]) return 0; return 1; }
আউটপুট
Run 1: Enter two strings abcdef deabcf The strings are anagrams. Run 2: Enter two strings tutorials Point The strings aren't anagrams.