給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。
示例 1:
輸入: 「aba」示例 2:輸出: true
輸入: 「abca」注意:輸出: true
解釋: 你可以刪除c字元。
字串只包含從 a-z 的小寫字母。字串的最大長度是50000。方法:雙指標法
通過split()方法將字串轉換成字串陣列arr,
設定兩個指標left,right;left預設值為陣列第乙個元素下標0,right為陣列最後乙個元素下標arr.length - 1。
while迴圈遍歷left++,right–,在left < right的情況下判斷arr[left] 是否等於arr[right]。
如果left === right,說明該字串已經是回文。
否則將left+1,或right-1;呼叫函式執行對應的判斷
var
validpalindrome
=function
(s)if
(left === right)
return
true
return
isvalid
(arr, left +
1, right)
||isvalid
(arr, left, right -1)
};varisvalid
=function
(arr, left, right)
left++
right--
}return
true
}
驗證回文字串
描述 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。解法 字串中可能含有其他的字元,我們從字串的兩頭開始索引,如果左邊的字元不是字母或者數字字元,那麼讓左邊先走一步,同理右邊的也一樣。如果兩邊字元相同,那麼左邊和右邊同時走...
驗證回文字串
給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true示例 2 輸入 race a car 輸出 false將大寫字母全部轉化成小寫字母,將空格...
驗證回文字串
給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。示例 1 輸入 aba 輸出 true 示例 2 輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 字串只包含從 a z 的小寫字母。字串的最大長度是50000。分析 雙指標解,第一次遇到不同字元時分兩種情況進行判斷回文字串...