ภายใต้แอนนาแกรม สตริงอื่นจะมีอักขระเหมือนกันในสตริงแรก แต่ลำดับของอักขระอาจแตกต่างกัน
เรากำลังตรวจสอบสองสตริงต่อไปนี้ -
string str1 = "silent"; string str2 = "listen";
แปลงสตริงทั้งสองเป็นอาร์เรย์อักขระ -
char[] ch1 = str1.ToLower().ToCharArray(); char[] ch2 = str2.ToLower().ToCharArray();
ตอนนี้ จัดเรียงพวกมัน -
Array.Sort(ch1); Array.Sort(ch2);
หลังจากจัดเรียงแล้ว ให้แปลงเป็นสตริง -
string val1 = new string(ch1); string val2 = new string(ch2);
เปรียบเทียบทั้งสองสายเพื่อความเท่าเทียมกัน หากทั้งคู่เท่ากัน แสดงว่าเป็นแอนนาแกรม
ต่อไปนี้เป็นรหัส −
ตัวอย่าง
using System; public class Demo { public static void Main () { string str1 = "silent"; string str2 = "listen"; char[] ch1 = str1.ToLower().ToCharArray(); char[] ch2 = str2.ToLower().ToCharArray(); Array.Sort(ch1); Array.Sort(ch2); string val1 = new string(ch1); string val2 = new string(ch2); if (val1 == val2) { Console.WriteLine("Both the strings are Anagrams"); } else { Console.WriteLine("Both the strings are not Anagrams"); } } }
ผลลัพธ์
Both the strings are Anagrams