Advertisement
Honza_Tajovsky

Palindrom

Jun 23rd, 2014
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.68 KB | None | 0 0
  1.         // Téměř identické jako Davidovo jen lehce
  2.         // optimalizované řešení a můj favorit
  3.         static bool IsPalindrome1(string arg)
  4.         {
  5.             arg = arg.ToLower();
  6.    
  7.             var l = arg.Length;
  8.             for (var i = 0; i < l--; i++)
  9.                 if (arg[i] != arg[l])
  10.                     return false;
  11.             return true;
  12.         }
  13.         // Oneliner všechno řešeno pomocí volání metod
  14.         // Kód je trochu složitější na pochopení ale pokud chceme
  15.         // řešit palindrom na jednom místě proč ne
  16.         static bool IsPalindrome2(string arg)
  17.         {
  18.             arg = arg.ToLower();
  19.            
  20.             return new string (arg.ToArray().Reverse().ToArray()).Equals(arg);
  21.         }
  22.         // Stack rulezzZ! Hodně optimalizovaná verze toho co napsal Honza
  23.         // Je to trochu C style ale proč ne. Někdy se může hodit.
  24.         static bool IsPalindrome3(string arg)
  25.         {
  26.             arg = arg.ToLower();
  27.  
  28.             Stack<char> b = new Stack<char>();
  29.             foreach (var c in arg) b.Push(c);
  30.             return Enumerable.SequenceEqual(b.ToArray(), arg.ToArray());
  31.         }
  32.         static void Main(string[] args)
  33.         {
  34.             string word;
  35.             do
  36.             {
  37.                 Console.Write("Zadej slovo k ověření nebo napiš konec: ");
  38.                 word = Console.ReadLine();
  39.                 Console.WriteLine(IsPalindrome1(word) ? "je" : "není");
  40.                 Console.WriteLine(IsPalindrome2(word) ? "je" : "není");
  41.                 Console.WriteLine(IsPalindrome3(word) ? "je" : "není");
  42.             } while (word != "konec");
  43.         }
  44.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement