Palindrom – Palindrom co to? Palindrom Przykłady

Palindrom – Jako dziecko👧 lubiłam szukać słów, które czytane 📖 od prawej do lewej brzmią tak samo, jak czytane od lewej do prawej. Ile radości dawał fakt znalezienia takich „magicznych” wyrazów takich jak Anna, zakaz czy potop. Palindrom to jednak nie tylko dobra dziecięca zabawa, ale przydatne „zjawisko” wykorzystywane między innymi w programowaniu.

W tym artykule omówię, czym są palindromy, jak je rozpoznawać i jakie znaczenie mają w programowaniu.

Java – Palindrom – wprowadzenie

Z tego materiału dowiesz się:

  • Czym jest palindrom?
  • Jakie zastosowanie ma palindrom w programowaniu?
  • Jak wygląda algorytm rozpoznający palindromy?
  • Jak wykorzystać StringBuilder w algorytmie rozpoznającym palindromy?

Palindrom

Palindrom to słowo lub wyrażenie, które można czytać od lewej do prawej i od prawej do lewej bez zmiany znaczenia. Na przykład: „kajak”, „Anna”, „Atak kata” czy „Madam, in Eden, I’m Adam”. Palindromy znajdują zastosowanie w literaturze, poezji, muzyce oraz – co najważniejsze – w programowaniu.

Palindrom – Zastosowanie w programowaniu

W programowaniu palindromy często wykorzystuje się do weryfikacji poprawności wprowadzonych danych przez użytkowników np. gdy użytkownik wprowadza hasło, program może sprawdzić, czy hasło jest palindromem, aby uniemożliwić wprowadzenie zbyt łatwego do odgadnięcia hasła. Palindromy są również stosowane w algorytmach sortowania, analizie DNA oraz kompresji danych.

Palindrom – Algorytm rozpoznający palindrom

Rozpoznawanie palindromów jest stosunkowo proste. Najpierw należy usunąć z ciągu znaków wszystkie białe znaki i znaki interpunkcyjne. Następnie porównuje się pierwszy i ostatni znak, drugi i przedostatni, itd. Jeśli wszystkie pary znaków są sobie równe, to dany ciąg jest palindromem.

Palindrom – Java

Spójrzmy jak będzie wyglądała implementacja w Javie algorytmu rozpoznającego czy dany ciąg znaków jest lub czy nie jest palindromem.

public static boolean isPalindrome(String text) {
    String cleanText = text.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
    int length = cleanText.length();
    for (int i = 0; i < length / 2; i++) {
        if (cleanText.charAt(i) != cleanText.charAt(length - i - 1)) {
            return false;
        }
    }
    return true;
}

W powyższym kodzie:

  • W pierwszym kroku usuwamy wszystkie znaki, które nie są literami lub liczbami.
  • Powstały ciąg znaków konwertowany jest na małe litery
  • Następnie w pętli sprawdzany i porównywany jest ciąg, znak po znaku strony lewej (od pierwszego znaku) z prawą (od ostatniego)
  • W przypadku wystąpienia jakiejkolwiek niezgodności pętla jest przerywana, a metoda zwraca false – Nasze słowo nie jest palindromem.
  • Jeżeli iterowanie po tekście, nie zostaje przerwane w trakcie, to metoda zwraca true – Znaleźliśmy palindrom :).

Palindrom – Java – StringBuilder

Chcę pokazać Ci również krótszy, jeżeli chodzi o ilość linii kodu i zdecydowanie bardziej czytelny sposób na sprawdzenie czy dany tekst jest palindromem 🙂

  public static boolean isPalindrome(String text) {
        String cleanText = text.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();

        String reversedText = new StringBuilder(cleanText).reverse().toString();
        return cleanText.equals(reversedText);
    }
  • Tak jak we wcześniejszym przykładzie usuwamy wszystkie znaki, które nie są literami lub liczbami.
  • Powstały ciąg znaków konwertowany jest na małe litery
  • Następnie zastosowany jest StringBuilder, a dokładnie jego metoda reverse(), która odwraca wszystkie znaki w tekście np. jeżeli wejściowym słowem jest „kot” to metoda reverse() przekształci go w „tok”.
  • Finalnie porównujemy oczyszczony ciąg z jego odwróconą wersją za pomocą metody equals.

Java – StringBuilder

W ramach tego materiału zajmiemy się przede wszystkim zagadnieniem palindromu – natomiast kompletny materiał dotyczący StringBuilder’a znajdziesz poniżej.

➡ ZOBACZ 👉: StringBuilder: czy zawsze taki szybki? 

Palindrom – Podsumowanie

W ramach tego materiału dowiedzieliśmy się, czym jest palindrom i jakie ma zastosowanie w programowaniu. Bliżej zapoznaliśmy się z Javovą implementacją algorytmu rozpoznającego palindromy. Jeżeli chcesz kontynuować swoją przygodę z programowaniem, a konkretnie z Javą i  zobaczyć, co oferuję ten język programowania – bardziej kompleksowo zagłębić się w temat Javy, poczytać, posłuchać o Javie, to zachęcam Cię do zapoznania się z moim kursem „Kierunek Java”:

➡ ZOBACZ 👉: Kierunek Java


20+ BONUSOWYCH materiałów z programowania

e-book – „8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista”,
e-book – „Java Cheat Sheet”,
checklista – „Pytania rekrutacyjne”
i wiele, wiele wiecej!

Jak zostać programistą

No comments
Share:

Dodaj komentarz

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