給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。
示例:
aba true
abca true
abcda false
思路:
使用雙指標,乙個指標start從前往後遍歷,乙個指標end從後往前遍歷,如果不一樣,start+1或者end-1,判斷兩個字字串是否為回文字串,如果有乙個是,返回true;
**及注釋:
c++:
calss solution
//字串遍歷完成,返回true
return
true;}
bool
ispalindrome
(string s)
//如果不相同,刪除low或者high,判斷[low+1,high]到[low,high-1];
else
return
checkpalindrome
(low+
1,high)
||checkpalindrome
(low,high-1)
;}return
true;}
}
python3:
def
ispalindrome
(self,s:
str)
->
bool
:# python中#代表注釋
# 句末加:表示和以下為同一部分
defcheckpalindrome
(start,end)
:while startif s[start]
!=s[end]
:return
false
else
: start +=
1 end -=
1return
true
#空一行表示是兩個部分
#變數必須在初始化時賦值
i,j =0,
len(s)-1
while iif s[i]
==s[j]
: i +=
1 j -=
1else
:return checkpalindrome(i+
1,j)
or checkpalindrome(i,j-1)
return
true
;
leetcode刷題 125 驗證回文串
給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false 思路 先用replaceall ...
LeetCode刷題筆記第9題 回文字
給你乙個整數 x 如果 x 是乙個回文整數,返回 true 否則,返回 false 回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。例如,121 是回文,而 123 不是。示例 1 輸入 x 121 輸出 true 示例 2 輸入 x 121 輸出 false 解釋 從左向右讀,為 1...
LeetCode刷題筆記 125 驗證回文串
給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false 設定兩個指標i和j,i從頭遍歷到...