Hai từ là anagram nếu chứa cùng ký tự (không phân biệt thứ tự). Cách: chuyển về chữ thường, thành mảng char, sắp xếp, so sánh chuỗi.
Ví dụ
using System;
public class Demo
{
public static void Main()
{
string str1 = "heater";
string str2 = "reheat";
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("Hai chuỗi là Anagram");
else
Console.WriteLine("Hai chuỗi KHÔNG phải Anagram");
}
}
Kết quả
Hai chuỗi là Anagram
Cải tiến: Dùng str1.OrderBy(c => c).SequenceEqual(str2.OrderBy(c => c)) với LINQ.