Files
obsidian/АиСД/Задачи/LeetCode/Valid Palindrome.md
T
roma-dxunvrs f57762fd3b Init
2026-09-03 21:40:46 +03:00

692 B

Leetcode #125 | #Easy | Два указателя

Идея

Два указателя навстречу, пропуск всех ненужных символов

Big-O

  • Время O(N)
  • Память O(1)

Код

class Solution {
    public boolean isPalindrome(String s) {
        int l = 0, r = s.length() - 1;
        while (l < r) {
            while (l < r && !Character.isLetterOrDigit(s.charAt(l))) l++;
            while (l < r && !Character.isLetterOrDigit(s.charAt(r))) r--;
            if (Character.toLowerCase(s.charAt(l)) != Character.toLowerCase(s.charAt(r))) return false;
            l++; r--;
        }
        return true;
    }
}