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));
}
}