Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Chương trình C# kiểm tra hai từ có phải anagram

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.