Tuesday, June 2, 2015

Are Anagrams (C#) : Algorithm

An anagram is a word formed from another by rearranging its letters, using all the original letters exactly once; for example, orchestra can be rearranged into carthorse.

Write a function that checks if two words are each other's anagrams.

For example, AreStringsAnagrams("momdad", "dadmom") should return true as arguments are anagrams.

Code Snippet
  1.  
  2. class Program
  3. {
  4.     public static bool AreStringsAnagrams(string a, string b)
  5.     {
  6.         if (String.IsNullOrEmpty(a) || String.IsNullOrEmpty(b))
  7.             return false;
  8.         else if (a.Length != b.Length)
  9.             return false;
  10.         else if (a.Equals(b))
  11.             return true;
  12.         else
  13.             return a.OrderBy(x => x).SequenceEqual(b.OrderBy(x => x));
  14.  
  15.     }
  16.  
  17.     public static void Main(string[] args)
  18.     {
  19.         Console.WriteLine(AreStringsAnagrams("momdad", "dadmom"));
  20.         Console.ReadLine();
  21.     }
  22. }

No comments: