g0601_0700.s0680_valid_palindrome_ii.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0601_0700.s0680_valid_palindrome_ii;
// #Easy #String #Greedy #Two_Pointers #2022_03_22_Time_10_ms_(61.31%)_Space_55.3_MB_(15.70%)
/**
* 680 - Valid Palindrome II\.
*
* 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.
**/
public 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.substring(l + 1, r + 1)) || isPalindrome(s.substring(l, r));
}
l++;
r--;
}
return true;
}
private boolean isPalindrome(String s) {
int l = 0;
int r = s.length() - 1;
while (l < r) {
if (s.charAt(l) != s.charAt(r)) {
return false;
}
l++;
r--;
}
return true;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy