Wir mussten das für Sätze mit Satzzeichen lösen.
Bin dann von einem linken Index und einem rechten Index ausgegangen.
Code
- static void Main(string[] args)
- {
- string s = "Einhorn roh? Nie!";
- string low = s.ToLower();
- bool IstPalindrom = true;
- int linkerIndex = 0, rechterIndex=low.Length-1;
- while (linkerIndex < rechterIndex)
- {
- while (!char.IsLetter(s[linkerIndex]))
- linkerIndex++;
- while (!char.IsLetter(s[rechterIndex]))
- rechterIndex--;
- if (low[linkerIndex] != low[rechterIndex])
- {
- IstPalindrom = false;
- break;
- }
- linkerIndex++;
- rechterIndex--;
- }
- if (IstPalindrom)
- Console.WriteLine("{0} ist ein Palindrom", s);
- else
- Console.WriteLine("{0} ist KEIN Palindrom", s);
- }
- }
- }