Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Téměř identické jako Davidovo jen lehce
- // optimalizované řešení a můj favorit
- static bool IsPalindrome1(string arg)
- {
- arg = arg.ToLower();
- var l = arg.Length;
- for (var i = 0; i < l--; i++)
- if (arg[i] != arg[l])
- return false;
- return true;
- }
- // Oneliner všechno řešeno pomocí volání metod
- // Kód je trochu složitější na pochopení ale pokud chceme
- // řešit palindrom na jednom místě proč ne
- static bool IsPalindrome2(string arg)
- {
- arg = arg.ToLower();
- return new string (arg.ToArray().Reverse().ToArray()).Equals(arg);
- }
- // Stack rulezzZ! Hodně optimalizovaná verze toho co napsal Honza
- // Je to trochu C style ale proč ne. Někdy se může hodit.
- static bool IsPalindrome3(string arg)
- {
- arg = arg.ToLower();
- Stack<char> b = new Stack<char>();
- foreach (var c in arg) b.Push(c);
- return Enumerable.SequenceEqual(b.ToArray(), arg.ToArray());
- }
- static void Main(string[] args)
- {
- string word;
- do
- {
- Console.Write("Zadej slovo k ověření nebo napiš konec: ");
- word = Console.ReadLine();
- Console.WriteLine(IsPalindrome1(word) ? "je" : "není");
- Console.WriteLine(IsPalindrome2(word) ? "je" : "není");
- Console.WriteLine(IsPalindrome3(word) ? "je" : "není");
- } while (word != "konec");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement