Pascal4eg / Java

 Java | Фишки и трюки

Является ли слово палиндромом

public class Palindrome {
    public static void main(String[] args) {
        String word = "шалаш";
        System.out.println(isPalindrome(word));
    }

    private static boolean isPalindrome(String word) {
        int count = word.length() / 2;
        int j = word.length() - 1;
        for (int i = 0; i < count; i++) {
            if (word.charAt(i) != word.charAt(j)) {
                return false;
            }
            j--;
        }
        return true;
    }
}

Суть алгоритма в том, что бы сравнивать поочередно первую букву с последней, вторую с предпоследней и так далее. Как только одна из пар не совпадет, сразу выходим - слово не палиндром.

Количество итераций это размер слова деленное на 2, потому как за раз мы проверяем две буквы. Счетчик i это индекс очередной буквы слева, а j справа.

Палиндром это слово которое читается одинаково слева направо и справа налево.