1.0 KiB
1.0 KiB
Leetcode #680 | Easy | Два указателя
Идея
Продолжение Valid Palindrome, только теперь можно удалить один символ. При первом несовпадении запускаем вспомогательную функцию, которая допроверяет либо с l+1 до r, либо с l до r-1
Big-O
- Время
O(N) - Память
O(1)
Код
class Solution {
public boolean validPalindrome(String s) {
int l = 0;
int r = s.length()-1;
while (l < r) {
if (s.charAt(l) != s.charAt(r)) {
return isPalindrome(s, l+1, r) || isPalindrome(s, l, r-1);
}
l++;
r--;
}
return true;
}
boolean isPalindrome(String s, int l, int r) {
while (l < r) {
if (s.charAt(l) != s.charAt(r)) {
return false;
}
l++;
r--;
}
return true;
}
}