【LeetCode】680. 返信文字列の検証II
5186 ワード
タイトルリンク:https://leetcode-cn.com/problems/valid-palindrome-ii/description/
タイトルの説明
空でない文字列sを指定し、最大1文字を削除します.返信文字列にできるかどうかを判断します.
例
入力:aba出力:True
入力:abca出力:True解釈:c文字を削除できます.
注意:文字列には、a-zからの小文字のみが含まれます.文字列の最大長は50000です.
解決策
考え方:二重ポインタ思想.文字列が回文列(1)i,j移動中(i(2)i,j移動中(i
タイトルの説明
空でない文字列sを指定し、最大1文字を削除します.返信文字列にできるかどうかを判断します.
例
入力:aba出力:True
入力:abca出力:True解釈:c文字を削除できます.
注意:
解決策
考え方:二重ポインタ思想.文字列が回文列(1)i,j移動中(i(2)i,j移動中(i
class Solution {
public:
bool validPalindrome(string s) {
if (s.size()<=2) return true;
int left=0,right=s.size()-1;
while(left<right){
if (s[left]!=s[right]){
if (isPalindrome(s,left+1,right) || isPalindrome(s,left,right-1))
return true;
else
return false;
}
left++;right--;
}
return true;
}
public: //
bool isPalindrome(string s,int left,int right) {
while(left<right){
if (s[left]!=s[right]) return false;
left++;right--;
}
return true;
}
};