public string esAnagrama() { if (Regex.IsMatch(Palabra1, @"[0-9]") || Regex.IsMatch(Palabra2, @"[0-9]")) { return("No Es Anagrama"); } if (string.IsNullOrEmpty(Palabra1) || string.IsNullOrEmpty(Palabra2)) { return("No Es Anagrama"); } if (Palabra1 == Palabra2) { return("Es Anagrama"); } var charMap = new Dictionary <char, int>(); foreach (char c in Palabra1.Trim().ToLowerInvariant()) { if (!char.IsLetterOrDigit(c)) { continue; } if (charMap.ContainsKey(c)) { charMap[c]++; } else { charMap.Add(c, 1); } } foreach (char c in Palabra2.Trim().ToLowerInvariant()) { if (!char.IsLetterOrDigit(c)) { continue; } if (!charMap.ContainsKey(c)) { return("No Es Anagrama"); } if (--charMap[c] < 0) { return("No Es Anagrama"); } } foreach (int i in charMap.Values) { if (i != 0) { return("No Es Anagrama"); } } return("Es Anagrama"); }
static void Main(string[] args) { string Palabra1; string Palabra2; Console.WriteLine("Ingrese una palabra"); // Ingreso de las palabras a comparar Palabra1 = Console.ReadLine(); Console.WriteLine("Ingrese una segunda palabra"); Palabra2 = Console.ReadLine(); char[] charArray = Palabra2.ToCharArray(); Array.Reverse(charArray); string Resultado = new string(charArray); if (Palabra1.Equals(Resultado)) { Console.WriteLine("Si, son palabras palindromes"); } else { Console.WriteLine("No son palabras palindromes, SORRY BRU"); } Console.ReadLine(); }