static void Main(string[] args)
        {
            PalindromesFinder model = new PalindromesFinder();
            StringBuilder     sb    = new StringBuilder();

            while (true)
            {
                sb.Clear();
                Console.WriteLine("Enter a string and press enter (Ctrl+C to quit)");
                while (true)
                {
                    var pressedKey = Console.ReadKey(true);
                    if (char.IsLetter(pressedKey.KeyChar))
                    {
                        var @char = Char.ToLower(pressedKey.KeyChar);
                        Console.Write(@char);
                        sb.Append(@char);
                    }
                    else if (pressedKey.Key == ConsoleKey.Backspace && sb.Length > 0)
                    {
                        Console.Write("\b \b");
                        sb.Length--;
                    }
                    else if (pressedKey.Key == ConsoleKey.Enter)
                    {
                        Console.Write('\n');
                        Console.WriteLine("------------------");
                        break;
                    }
                }
                try
                {
                    model.String = sb.ToString();
                    model.Run();

                    var results = GetThreeLongestUniquePalindromes(model.GetResults());

                    foreach (var palindrome in results)
                    {
                        Console.WriteLine($"Text: {palindrome.Palindrome}, Index: {palindrome.Index}, Length: {palindrome.Palindrome.Length}");
                        Console.WriteLine("------------------");
                    }
                }
                catch (Exception exc)
                {
                    Console.WriteLine($"An error occured: {exc.Message}");
                    continue;
                }
            }
        }
Example #2
0
 public void Init()
 {
     model = new PalindromesFinder();
 }