驗證回文字串

2021-10-01 08:45:05 字數 1020 閱讀 3356

給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。

示例 1:

輸入: 「aba」

輸出: true

示例 2:

輸入: 「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。分析 雙指標解,第一次遇到不同字元時分兩種情況進行判斷回文字串...