fork download
  1. using System;
  2. using System.Linq;
  3. using System.Text.RegularExpressions;
  4.  
  5. namespace DailyChallenge283
  6. {
  7. class Program
  8. {
  9. static void Main()
  10. {
  11. Console.WriteLine(Check("Clint Eastwood ? Old West Action"));
  12. Console.WriteLine(Check("parliament ? partial man"));
  13. Console.WriteLine(Check("wisdom ? mid sow"));
  14. Console.WriteLine(Check("Seth Rogan ? Gathers No"));
  15. Console.WriteLine(Check("Reddit ? Eat Dirt"));
  16. Console.WriteLine(Check("Schoolmaster ? The classroom"));
  17. Console.WriteLine(Check("Astronomers ? Moon starer"));
  18. Console.WriteLine(Check("Vacation Times ? I'm Not as Active"));
  19. Console.WriteLine(Check("Dormitory ? Dirty Rooms"));
  20.  
  21. Console.ReadLine();
  22. }
  23.  
  24. static string Check(string input)
  25. {
  26. // Split the input string
  27. char[] delimiter = { '?' };
  28. var words = input.Split(delimiter);
  29.  
  30. // Preserve both parts of input string in two variables
  31. var f = words[0].Substring(0, words[0].Length - 1);
  32. var s = words[1].Substring(1);
  33.  
  34. // Remove non-alphabetical characters
  35. var reg = new Regex("[^a-zA-Z?]");
  36. var first = reg.Replace(words[0].ToLower(), "");
  37. var second = reg.Replace(words[1].ToLower(), "");
  38. var temp = "";
  39.  
  40. // Start checking letters
  41. for (int i = 0; i < second.Length; i++)
  42. {
  43. if (first.Contains(second[i]))
  44. {
  45. temp += second[i];
  46. first = Trim(first, second[i]);
  47. }
  48. }
  49.  
  50. // If all letters are used AND there are no letters remaining, it's an anagram
  51. if (temp == second && first == "")
  52. {
  53. return string.Format("'{0}' is an anagram of '{1}'", f, s);
  54. }
  55.  
  56. // Not an anagram
  57. return string.Format("'{0}' is NOT an anagram of '{1}'", f, s);
  58. }
  59.  
  60. static string Trim(string letters, char letter)
  61. {
  62. string temp = "";
  63.  
  64. for (int i = 0; i < letters.Length; i++)
  65. {
  66. if (letters.IndexOf(letter) != -1)
  67. {
  68. temp = letters.Remove(letters.IndexOf(letter), 1);
  69. break;
  70. }
  71. }
  72.  
  73. if (temp != letters)
  74. {
  75. return temp;
  76. }
  77. return letters;
  78. }
  79. }
  80. }
Success #stdin #stdout 0.03s 30136KB
stdin
Standard input is empty
stdout
'Clint Eastwood' is an anagram of 'Old West Action'
'parliament' is NOT an anagram of 'partial man'
'wisdom' is an anagram of 'mid sow'
'Seth Rogan' is an anagram of 'Gathers No'
'Reddit' is NOT an anagram of 'Eat Dirt'
'Schoolmaster' is an anagram of 'The classroom'
'Astronomers' is NOT an anagram of 'Moon starer'
'Vacation Times' is an anagram of 'I'm Not as Active'
'Dormitory' is NOT an anagram of 'Dirty Rooms'