topic
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
示例 1:
输入: s = “aba”
输出: true
示例 2:
输入: s = “abca”
输出: true
解释: 你可以删除c字符。
示例 3:
输入: s = “abc”
输出: false
提示:
1 <= s.length <= 105
s 由小写英文字母组成
answer
class Solution {
public boolean validPalindrome(String s)
{
int i = 0;
int j = s.length() - 1;
int count = 0 ;
while(i != j && j - 1 != i)
{
if(s.charAt(i) != s.charAt(j) )
{
if(count > 0) return false;
else if(s.charAt(i + 1) == s.charAt(j) && s.charAt(i) == s.charAt(j - 1))
{
if(s.charAt(i + 2) == s.charAt(j - 1))
{
i++;
count++;
continue;
}
else if(s.charAt(i + 1) == s.charAt(j - 2))
{
j--;
count++;
continue;
}
}
else if(s.charAt(i + 1) == s.charAt(j))
{
i++;
count++;
continue;
}
else if(s.charAt(i) == s.charAt(j - 1))
{
j--;
count++;
continue;
}
else return false;
}
i++;
j--;
}
return true;
}
}