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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

LeetCode算法题-Valid Palindrome II(Java实现)

發布時間:2025/3/21 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode算法题-Valid Palindrome II(Java实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是悅樂書的第287次更新,第304篇原創

01 看題和準備

今天介紹的是LeetCode算法題中Easy級別的第155題(順位題號是680)。給定非空字符串s,最多可以刪除一個字符。 判斷它是否是回文。例如:

輸入:“aba”
輸出:true

輸入:“abca”
輸出:true
說明:可以刪除字符“c”讓其變為回文。

注意:該字符串僅包含小寫字符a-z。 字符串的最大長度為50000。

本次解題使用的開發工具是eclipse,jdk使用的版本是1.8,環境是win7 64位系統,使用Java語言編寫和測試。

02 第一種解法

暴力解法。首先,如果字符串長度在2以內,直接返回true。然后利用StringBuilder類,借助其reverse方法,判斷是否為回文。如果上面兩種情況都不滿足,就使用循環,每次對原字符串進行截取,來實現刪掉一位的效果,組成新的字符串來判斷是否為回文。但是此解法會超時。

public boolean validPalindrome(String s) {if (s.length() <= 2) {return true;}StringBuilder sb = new StringBuilder(s);String ss = sb.reverse().toString();if (s.equals(ss)) {return true;}for (int i=0; i<s.length(); i++) {if (i == 0) {if (isPalindrome(s.substring(1, s.length()))) {return true;}} else if (i < s.length()-1) {if (isPalindrome(s.substring(0, i)+ s.substring(i+1, s.length()))) {return true;}} else if (i == s.length()-1) {if (isPalindrome(s.substring(0, s.length()-1))) {return true;}}}return false; }public boolean isPalindrome(String ss){StringBuilder sb = new StringBuilder(ss);String sss = sb.reverse().toString();if (ss.equals(sss)) {return true;}return false; }


03 第二種解法

第一種解法會超時,因為考慮了所有可能存在的多余的那個字符,但是我們真的需要考慮那么多嗎?因為題目說了,只有一次刪除字符的機會,那么我們在處理的時候,只處理一種情況就好,不符合就直接返回false。

依舊使用截取字符串的方式,如果遇到左右字符不對稱的情況,就表示遇到了多余的字符,此時需要考慮是刪掉左邊的還是右邊的?只要兩個中符合一個就可以返回true,所以用或連接。將左右兩字符不等的索引范圍內的字符串進行截取,一個后面少截取一位,一個前面少截取一位,判斷截取的字符串是否為回文。

public boolean validPalindrome(String s) {if (s.length() <= 2) {return true;}StringBuilder sb = new StringBuilder(s);String ss = sb.reverse().toString();if (s.equals(ss)) {return true;}for (int i=0; i<s.length()/2; i++) {if (s.charAt(i) != s.charAt(s.length()-1-i)) {return isPalindrome(s.substring(i, s.length()-1-i)) || isPalindrome(s.substring(i+1, s.length()-i));}}return true; }public boolean isPalindrome(String ss){StringBuilder sb = new StringBuilder(ss);String sss = sb.reverse().toString();if (ss.equals(sss)) {return true;}return false; }


04 第三種解法

思路與第二種解法相似,但是比較輕便,借助雙指針來實現。一左一右取字符比較,如果不等,表示遇到了需要刪除的字符,同樣分兩種情況,刪右邊的一位和刪左邊的一位,再去判斷這中間的子字符串是否為回文即可。

public boolean validPalindrome(String s) {// 使用雙指針int left = 0;int right = s.length()-1;while (left < right) {// 如果左右指針所在的字符不相等,那就刪掉右邊的或者刪掉左邊的字符,再判斷if (s.charAt(left) != s.charAt(right)) {return isPalindrome(s, left, right-1) || isPalindrome(s, left+1, right);}left++;right--;}return true; }// 輔助方法,判斷一個字符串在(left,right)內是否為回文 public boolean isPalindrome(String s, int left, int right){while (left < right) {if (s.charAt(left) != s.charAt(right)) {return false;}left++;right--;}return true; }


05 小結

算法專題目前已日更超過四個月,算法題文章155+篇,公眾號對話框回復【數據結構與算法】、【算法】、【數據結構】中的任一關鍵詞,獲取系列文章合集。

以上就是全部內容,如果大家有什么好的解法思路、建議或者其他問題,可以下方留言交流,點贊、留言、轉發就是對我最大的回報和支持!

轉載于:https://www.cnblogs.com/xiaochuan94/p/10596796.html

總結

以上是生活随笔為你收集整理的LeetCode算法题-Valid Palindrome II(Java实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日韩免费av在线 | 国产亚洲欧美在线精品 | 亚洲av无码一区二区三区在线 | 日本黄色aaa | avtt久久| 成人午夜视频在线 | 国产在线视频资源 | 久操网在线 | av在线天堂 | 深夜视频在线看 | 国产自精品 | 亚洲欧美黄 | 午夜精品在线视频 | 黄色一级片欧美 | 男同精品| 精品国产乱码久久久久久婷婷 | 偷偷草| 日韩欧美在线观看免费 | 黄色大尺度视频 | 久久亚洲精品中文字幕 | 巨乳xxx | 在线成人毛片 | 国产馆在线观看 | 少妇又色又爽又高潮极品 | 天堂网2018 | 国产三级短视频 | 美国一级黄色大片 | 奇米一区| 天堂网a| 日本黄网站在线观看 | 污网站在线看 | 浪漫樱花在线观看高清动漫 | 日韩簧片 | 午夜精品久久久久久久99热黄桃 | 不良视频在线观看 | 色综合图区 | 久久av免费 | 捆绑无遮挡打光屁股 | 欧美少妇18p| 成人妇女淫片aaaa视频 | 女同性恋一区二区三区 | 波多野结衣亚洲视频 | 国产热热| 国产精品扒开做爽爽爽的视频 | 亚洲一级片网站 | 啪啪影音 | 亚洲综合伊人久久 | 日本乱轮视频 | 欧美视频一区二区在线 | 国产在线拍揄自揄拍无码视频 | 午夜鲁鲁| 欧美字幕 | 男生和女生一起差差差很痛的视频 | 无码人妻丰满熟妇奶水区码 | 欧美一区二不卡视频 | 欧美影视一区二区三区 | 插我一区二区在线观看 | 舒淇裸体午夜理伦 | 国产顶级毛片 | 麻豆视频在线观看免费 | 日日拍拍| 波多野一区二区三区 | 一本大道东京热无码 | av天堂永久资源网 | 黄在线网站 | 91网站免费看 | 国产伦精品一区二区三区在线 | 欧美人与动牲交a欧美精品 欧美三级在线看 | 无码国产色欲xxxx视频 | 99久久久无码国产精品免费麻豆 | 国产一区二区三区视频在线 | 能看的黄色网址 | 91香蕉嫩草| 蜜桃91麻豆精品一二三区 | 欧美 国产 日本 | 香蕉伊思人视频 | 成人国产片女人爽到高潮 | 欧美一区二区三区激情啪啪 | 在线免费观看av网站 | 亚洲国产色图 | 性欢交69精品久久久 | 欧美 日韩 人妻 高清 中文 | 日日碰日日操 | 日韩欧美亚洲精品 | 国产一区二区高清 | 天堂影视在线观看 | 久久天堂视频 | 国产欧美另类 | 欧美日韩不卡一区二区三区 | 日韩av中文字幕在线播放 | 亚洲国产中文在线 | 色就操| 国产欧美一区二区三区国产幕精品 | 九九精品在线观看视频 | 亚洲最大中文字幕 | 一级视频在线免费观看 | 日本精品视频一区二区 | 欧美变态绿帽cuckold | 亚洲精品免费在线观看视频 |