Easy
Given a string s
, return true
if the s
can be palindrome after deleting at most one character from it.
Example 1:
Input: s = “aba”
Output: true
Example 2:
Input: s = “abca”
Output: true
Explanation: You could delete the character ‘c’.
Example 3:
Input: s = “abc”
Output: false
Constraints:
1 <= s.length <= 105
s
consists of lowercase English letters.class Solution {
fun validPalindrome(s: String): Boolean {
var l = 0
var r = s.length - 1
while (l < r) {
if (s[l] != s[r]) {
return isPalindrome(s.substring(l + 1, r + 1)) || isPalindrome(s.substring(l, r))
}
l++
r--
}
return true
}
private fun isPalindrome(s: String): Boolean {
var l = 0
var r = s.length - 1
while (l < r) {
if (s[l] != s[r]) {
return false
}
l++
r--
}
return true
}
}