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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

jsp判断字符串相等_最长回文字符串三种解法

發布時間:2024/8/5 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jsp判断字符串相等_最长回文字符串三种解法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先解釋一下什么是回文字符串,比如說字符串“aba”,無論是從先往后讀取還是從后往前讀取,結果都是一樣的。當給定很長的字符串時,如何快速獲取到最長的回文字符串,這也是大廠比較常見的算法面試題,那么這里給出三種解法。

  • 1.暴力窮舉法思路:即遍歷每種子字符串,然后判斷該子字符串是否為回文(即前半部分是否等于后半部分),時間復雜度為O(n*n*n)

暴力窮舉

  • 2.中間擴散法

從每一個位置出發,向兩邊擴散即可。遇到不是回文的時候結束。

1.首先往左尋找與當期位置相同的字符,直到遇到不相等為止。

2.然后往右尋找與當前位置相同的字符,直到遇到不相等為止。

3.最后左右雙向擴散,直到左和右不相等。如下圖所示:

中間擴散法

3.動態規劃法

一開始我剛聽到動態規劃這個詞的時候感覺很高大上,后來經過查找資料發現其實很簡單,只不是從下向上的計算,說白了就是空間換時間,把中間的計算結果暫存起來,避免重復計算;

思路:

1.我們用一個 boolean dp[i][j]表示字符串從 i 到 j 這段是否為回文。

2.試想如果dp[i][j]=true,我們要判斷 dp[i-1][j+1]是否為回文。

只需要判斷字符串在(l-1)和(r+1)兩個位置是否為相同的字符,是不是減少了很多重復計算。動態規劃關鍵是找到初始狀態和狀態轉移方程。

初始狀態,l=r 時,此時 dp[l][r]=true。

狀態轉移方程,dp[l][r]=true 并且(l-1)和(r+1)兩個位置為相同的字符,此時 dp[l-1][r+1]=true。

動態規劃法

總結

以上是生活随笔為你收集整理的jsp判断字符串相等_最长回文字符串三种解法的全部內容,希望文章能夠幫你解決所遇到的問題。

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