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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

常考数据结构与算法:最长回文子串

發布時間:2025/6/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常考数据结构与算法:最长回文子串 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?

暴力解法:

? ?列舉所有的子串,判斷是否為回文串,保存最長的回文串。

/** 暴力解法: 列舉所有的子串,判斷是否為回文串,保存最長的回文串。*/public int getLongestPalindrome(String A, int n) {if(n == 0 || n == 1)return n;int count = 0;String temp;for (int i = 0; i < n; i++) {for (int j = i+1; j <= n; j++) {// 截取字符串temp = A.substring(i,j);// 判斷字符串是否為回文if(isPalindrome(temp) && (j-i) > count){count = j-i;}}}return count;}private boolean isPalindrome(String str){int start=0;int end=str.length()-1;while(start<end){if(str.charAt(start) == str.charAt(end)){start++;end--;}else{return false;}}return true;}

?

動態規劃(利用已有的信息,判斷下一步)

? 暴力解法時間復雜度太高,我們可以考慮,去掉一些暴力解法中重復的判斷。

? 首先定義:字符串 s 從下標 i 到下標 j 的字串為 P(i, j),若 s 從下標 i 到下標 j 的字串為回文串,則 P(i, j) = true,否則?P(i, j) = false。如下圖所示:

? 則 P(i, j) = (P(i + 1, j - 1) && s[i] == s[j])。

? 所以如果我們想知道 P(i,j)的情況,不需要調用判斷回文串的函數了,只需要知道 P(i+1,j?1)的情況就可以了,這樣時間復雜度就少了?O(n)。因此我們可以用動態規劃的方法,空間換時間,把已經求出的 P(i,j)存儲起來。

? 如果 s[i+1, j-1] 是回文串,那么只要 s[i] == s[j],就可以確定 s[i, j] 也是回文串了。

注意:

? 求 長度為 1?和長度為 2?的 P(i, j) 時不能用上邊的公式,因為我們代入公式后會遇到 P[i][j] 中 i > j 的情況,比如求P[1][2] 的話,我們需要知道 P[1+1][2-1]=P[2][1] ,而 P[2][1] 代表著 S[2, 1] 是不是回文串,這顯然是不對的,所以我們需要單獨判斷。

? 所以我們先初始化長度是 1 的回文串的 P [i , j],這樣利用上邊提出的公式 P(i,j)=(P(i+1,j-1) && S[i]==S[j]),然后兩邊向外各擴充一個字符,長度為 3?的,為 5?的,所有奇數長度的就都求出來了。同理,初始化長度是 2 的回文串 P[i,i+1],利用公式,長度為 4?的,6?的所有偶數長度的就都求出來了。
?

?

public int getLongestPalindrome(String A, int n) {int sLen = n;int maxLen = 0;String ans = "";boolean[][] P = new boolean[sLen][sLen];// 遍歷所有長度 "abc1234321"for (int len = 1; len <= sLen; len++) {for (int start = 0; start < sLen; start++) {int end = start + len - 1;// 下標越界,結束循環if (end >=sLen) {break;}P[start][end] = (len == 1 || len == 2 || P[start + 1][end - 1]) && A.charAt(start) == A.charAt(end);if (P[start][end] && len > maxLen) {maxLen = len;ans = A.substring(start, end + 1);}}}return ans.length();}

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的常考数据结构与算法:最长回文子串的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 自拍偷拍激情小说 | 天天插天天摸 | 中文日韩欧美 | 66av欧美| 国产日韩欧美综合 | 日本中文字幕一区 | 三级久久| 奇米一区二区 | 久久激情免费视频 | 亚洲色图偷拍视频 | 夜夜夜夜夜操 | 蜜臀av性久久久久蜜臀aⅴ麻豆 | 国产精品免费一区二区三区都可以 | 黄色片免费在线播放 | 污污视频网站在线 | 中字幕一区二区三区乱码 | 国产精品每日更新 | 国产欧美精品一区二区色综合 | 女人囗交吞精囗述 | 日韩中文在线视频 | 超碰在线进入 | 欧美在线性爱视频 | 国色天香网站 | av软件在线观看 | 国产亚洲色婷婷久久99精品 | 九九九热视频 | 欧美精品免费一区二区 | 亚洲高清视频网站 | 天堂8在线天堂资源bt | 一区二区三区视频在线观看免费 | 日韩精品一区二区三区四区五区 | 老妇女av| 婷婷久久网 | 精品人妻人人做人人爽 | 国产一级一片免费播放 | 男男gay同性三级 | 国产精品一区二区欧美 | 国产少女免费观看高清 | 一区二区内射 | 激情久久网站 | 国产日韩视频在线观看 | av不卡高清 | 葵司一区二区 | 欧美精品日韩在线 | 爱情岛亚洲论坛入口福利 | 国产久一 | 92国产精品 | 西西人体做爰大胆gogo直播 | 日日爽夜夜 | 日韩欧美一二三区 | 国产午夜大地久久 | 精品无码久久久久成人漫画 | 日本啪啪啪一区二区 | 亚洲精品无码一区二区 | 日本一区视频在线观看 | 国产精品视频无码 | 日本黄色片段 | 啪视频免费| 国产又爽又黄的激情精品视频 | 色综合天天色综合 | 午夜激情啪啪 | 国产精品波多野结衣 | 国产鲁鲁视频在线观看免费 | 国产精品男女视频 | 国产精品99精品无码视 | 精久久久 | 亚洲操 | 欧美精品一区二区性色a+v | 韩国禁欲系高级感电影 | 欧美| 少妇高潮露脸国语对白 | 国语对白做受按摩的注意事项 | 成人一区二区免费视频 | 狠狠摸狠狠操 | 极品白嫩少妇无套内谢 | 久久曹| 一区二区三区亚洲视频 | 婷婷视频网 | 欧美一区二区最爽乱淫视频免费看 | 国产精品视频一区在线观看 | 国产欧美日韩久久 | 精品人妻伦一二三区久 | 黄色在线观看视频 | 无码国产精品久久一区免费 | 国产精品人妻 | 日本伊人影院 | 成人免费视频网址 | 丰满人妻一区二区三区四区 | 精品久久久久成人码免费动漫 | 久久精品www人人爽人人 | 日韩成人黄色 | 国产福利91精品一区二区三区 | 欧美浪妇xxxx高跟鞋交 | 天天久久| 国产一区二区三区黄 | 亚洲最新在线视频 | 国产成人午夜精华液 | 白浆影院 | 老公吃小头头视频免费观看 |