日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【算法】双指针算法 ( 有效回文串 II )

發布時間:2025/6/17 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【算法】双指针算法 ( 有效回文串 II ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

算法 系列博客

【算法】刷題范圍建議 和 代碼規范
【算法】復雜度理論 ( 時間復雜度 )

【字符串】最長回文子串 ( 蠻力算法 )
【字符串】最長回文子串 ( 中心線枚舉算法 )
【字符串】最長回文子串 ( 動態規劃算法 ) ★
【字符串】字符串查找 ( 蠻力算法 )
【字符串】字符串查找 ( Rabin-Karp 算法 )

【算法】雙指針算法 ( 雙指針算法分類 | 相向雙指針 | 有效回文串 )
【算法】雙指針算法 ( 有效回文串 II )


文章目錄

  • 算法 系列博客
  • 一、有效回文串 II





一、有效回文串 II



有效回文串 II : https://www.lintcode.com/problem/891/

給定非空字符串 , 最多刪除一個字符 , 判斷是否可以將該字符串變成回文串 ;


該算法是一個貪心算法 , 給定一個字符串 “abca” , 設置兩個指針 , 分別指向最左側字符 和 最右側字符 , 從兩端開始遍歷 , 逐個比較兩個指針指向的字符是否相等 ;

如果出現了左右指針指向的字符不相等 , 那么只能有兩種操作 , 要么刪除左指針指向的字符 , 要么刪除右指針指向的字符 ;

刪除左指針指向的字符 , 繼續向后遍歷 , 判定整個字符串是否是回文串 ;
刪除右指針指向的字符 , 繼續向后遍歷 , 判定整個字符串是否是回文串 ;

如果上述兩種方案 , 都不是回文串 , 那么說明刪除單個字符后字符串仍不是回文串 ;


代碼示例 :

class Solution {/*** 給一個非空字符串 s,你最多可以刪除一個字符。判斷是否可以把它變成回文串。* @param s 給定的字符串 * @return 刪除零個或一個字符后是否是回文串*/public boolean validPalindrome(String s) {if (s == null) {return false;}// 先判定該字符串是否是回文串// 數組中 0 索引存放左指針, 1 索引存放右指針 int[] pointer = new int[2];findDifference(s, 0, s.length() - 1, pointer);if (pointer[0] >= pointer[1]) {return true;}// 如果字符串不是回文串, 則考慮刪除左指針/右指針指向的字符, 再判定是否是字符串// 刪除左指針指向的字符, 并驗證是否是回文串return isPalindrome(s, pointer[0] + 1, pointer[1])// 刪除右指針指向的字符, 并驗證是否是回文串 || isPalindrome(s, pointer[0], pointer[1] - 1); }private void findDifference(String s, int left, int right, int[] result) {// 對比兩字符是否相等, 如果相等, 指針向中間移動一位while (left < right && s.charAt(left) == s.charAt(right)) {left++;right--;}// 設置返回值// 如果該字符串是回文串, 則左指針最后等于 ( 偶數個字符 ) 或者大于右指針 ( 奇數個字符 )// 如果該字符串不是回文串 , 則左右指針原封不動返回result[0] = left;result[1] = right;}private boolean isPalindrome(String s, int left, int right) {// 判定 s 字符串是否是回文串int[] pointer = new int[2];findDifference(s, left, right, pointer);return pointer[0] >= pointer[1];} }class Main {public static void main(String[] args) {System.out.println(new Solution().validPalindrome("abcnba"));} }

總結

以上是生活随笔為你收集整理的【算法】双指针算法 ( 有效回文串 II )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩国产欧美综合 | 91欧美一区二区 | 亚洲av无一区二区三区 | 国产精品麻豆成人av电影艾秋 | av导航站| 亚洲一区二区日本 | 国产一区二区三区麻豆 | 不卡视频一区二区三区 | 国产日韩亚洲 | 国产在线123 | 中文字幕――色哟哟 | 清纯唯美亚洲综合 | 色呦呦免费观看 | 91麻豆蜜桃一区二区三区 | 怡红院久久 | 久久精品三级视频 | 风间由美一区二区 | 午夜精品国产精品大乳美女 | 国产不雅视频 | 999这里有精品 | 重囗味sm一区二区三区 | 欧美久久影院 | 捆绑束缚调教 | 国产奶水涨喷在线播放 | 懂色av一区二区三区在线播放 | 国产裸体舞一区二区三区 | 欧美成人综合在线 | 国产激情视频在线播放 | 一区二区三区免费网站 | 成人夜色视频 | 91精品国产成人www | 日韩成人精品一区二区 | 韩国无码av片在线观看网站 | 人妻夜夜爽天天爽 | 久久久久久免费观看 | 美国一级片网站 | 在线欧美视频 | 日韩激情网 | 在线观看日韩国产 | 免费毛片一级 | 自拍视频一区二区 | 夜夜操网站 | 白又丰满大屁股bbbbb | 欧洲自拍偷拍 | 欧洲性开放大片 | 精精国产xxxx视频在线 | 亚洲欧美一区二区三区久久 | 自拍偷自拍亚洲精品播放 | 久久久久网 | 亚洲最大的av网站 | 国产51精品| www日本免费 | 一区二区在线播放视频 | 日韩精品一区二区三区中文字幕 | 青青青国产在线 | 久草毛片| 国产一级大片在线观看 | 国产精品第七页 | 福利片在线观看 | 蜜桃精品视频在线观看 | 欧美在线视频免费播放 | 免费网站观看www在线观看 | 口爆吞精一区二区三区 | 国产精品a级 | 美日韩黄色 | 日本高清视频在线观看 | 欧美私人影院 | 理论片琪琪午夜电影 | 亚洲毛片一级 | 日本久久综合网 | 国产欧美日| 欧美精品亚洲一区 | 亚洲射图 | 日韩a∨ | 欧美日本韩国一区二区三区 | 九一国产视频 | 狠狠躁日日躁 | 在线观看一二区 | 国产中文自拍 | 国产嫩草影视 | 日本精品久久 | av手机观看 | 朝桐光av一区二区三区 | 波波野结衣 | 国产亚洲精品美女久久久 | 精品人妻伦一二三区免费 | 少妇又色又爽 | 国产成人亚洲精品 | 中文字幕在线一区 | 韩国av一区二区三区 | 亚洲美女屁股眼交8 | 久久久久免费观看 | 91精品国产综合久久久久久久 | 亚洲欧美国产视频 | 成人av国产 | 亚洲AV蜜桃永久无码精品性色 | 亚洲综合五区 | 久草电影网站 | 免费av网站在线看 |