Sprawdzenie czy string jest Palindromem

Sprawdzenie czy string jest Palidromem

Palindrom to wyrażenie brzmiące tak samo czytane od lewej do prawej strony jak i od prawej do lewej. Obecnie wyrażenia mające te cechę są raczej ciekawostką i używa się ich między innymi do gry słownej.

Przykłady Palindromów

  • kayak
  • level
  • radar
  • Ala
  • kobyła ma mały bok
  • a tu mam mamuta
  • Zakopane na pokaz
  • a kilku tu klika
  • atak kata
  • nawijaj Iwan

Rozwiązanie:

Napiszemy teraz metodę, która jako parametr przyjmuje wyrażenie typu string
i zwraca wartość true jeżeli wyrażenie jest palindromem.
Natomiast jeśli wyrażenie nie jest palindromem metoda powinna zwrócić false.

private static bool CheckPalindrom(string text)
{
   if (String.IsNullOrWhiteSpace(text))             
      return false;

   text = text.Replace(" ", "").ToLower();     

   return text == new string(text.ToCharArray().Reverse().ToArray());
}

Co tutaj robimy:

Na początku sprawdzamy czy nie został przekazany pusty ciąg znaków bądź wartość null. Jeżeli tak to zwracamy false

Następnie usuwamy spacje z otrzymanego wyrażenia i zamieniamy duże litery na małe.

Następnie:
– tworzymy nowy string
– konwertujemy wprowadzony tekst do tablicy znaków,
– odwracamy kolejność
– konwertujemy z powrotem do tablicy i mamy odwrócony tekst
i jeśli te teksty są sobie równe to znaczy że string jest palindromem!!!!

I teraz sprawdzamy nasze rozwiązania.

private static void Main(string[] args)
{
   string[] array = { "kayak", "level", "radar", "Ala", "kobyła ma mały bok", "a tu mam mamuta", "Zakopane na pokaz", "a kilku tu klika", "atak kata", "nawijaj Iwan", "", "deska" };

   foreach (string value in array)
   {
      Console.WriteLine("{0} = {1}", value, CheckPalindrom(value));
   }
}

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *