<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                >[success] # Leetcode -- 125. 驗證回文串 * **描述** 給定一個字符串,驗證它是否是回文串,只考慮字母和數字字符,可以忽略字母的大小寫。 * **說明**: 本題中,我們將空字符串定義為有效的回文串。 ? * **示例 1**: ~~~ 輸入: "A man, a plan, a canal: Panama" 輸出: true 解釋:"amanaplanacanalpanama" 是回文串 ~~~ * **示例 2**: ~~~ 輸入: "race a car" 輸出: false 解釋:"raceacar" 不是回文串 ~~~ 來源:力扣(LeetCode) 鏈接:https://leetcode.cn/problems/valid-palindrome 著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。 >[info] ## 常規解法 * 使用 js 先將字符中的非數字字母通過 **replace**進行替換,在使用反轉字符串方法進行比較字符 >[info] ## 使用對撞指針思路 * 創建兩個指針,依次比較其中如果當前指針所指的值非數字或者字母則跳過(題中強調只對數字字母比較可看實例一),如果是字母則比較當前指針前后所在位置值是否相等 ![](https://img.kancloud.cn/28/a0/28a0458e79f8a5c3704a18e52e342c21_1461x1318.png) >[danger] ##### js ~~~ /** * @param {string} s * @return {boolean} */ var isPalindrome = function(s) { const re = /[0-9a-zA-Z]/ let left = 0 let right = s.length -1 while( left < right ){ // 如果left 指針的值為非字母數字自動后移動 // 前移動最大值不能超過當前字符串 while(left < s.length && !re.test(s.charAt(left))) left ++ // 如果right 指針的值為字母數字自動前移動 // 后移動最小值不能小于 0 while(right > 0 && !re.test(s.charAt(right))) right -- // 當指針從頭到尾發現所有字符都不是字母數字時候 if(left === s.length && right === 0) return true // 對撞指針 如果值相等互相前進 和 后退 if(s.charAt(left).toLowerCase() === s.charAt(right).toLocaleLowerCase()){ left ++ right -- }else{ return false } } return true }; ~~~ >[danger] ##### java * Character.isLetterOrDigit 判讀是否是數字和字母 ~~~ class Solution { public boolean isPalindrome(String s) { int left = 0; int right = s.length() - 1; while(left < right){ while(left < right && !Character.isLetterOrDigit(s.charAt(left))) left++; while(left < right && !Character.isLetterOrDigit(s.charAt(right))) right--; if(left < right){ if (Character.toLowerCase(s.charAt(left)) != Character.toLowerCase(s.charAt(right))) { return false; } left++; right--; } } return true; } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看