class Solution {
public:
//从左右两端开始验证是否是回文串,验证的过程中,只有一次机会删除
bool validPalindrome(string s) {
int i = 0, j = s.size() - 1;
while (i <= j)
{
if (s[i] != s[j])//使用唯一的一次机会删除
return isValid(s, i + 1, j) || isValid(s, i, j - 1);
i++;
j--;
}
return true;
}
bool isValid(const string&s, int i, int j)
{
while (i <= j)
{
if (s[i++] != s[j--])
{
return false;
}
}
return true;
}
};
200519题(简单双指针题)
最新推荐文章于 2023-05-10 15:40:01 发布