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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

算法_Longest Palindromic Substring(寻找最长回文字串)

發布時間:2025/4/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法_Longest Palindromic Substring(寻找最长回文字串) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目Given a string?S, find the longest palindromic substring in?S. You may assume that the maximum length of?S?is 1000, and there exists one unique longest palindromic substring.

題解首先需要清楚什么是“回文“(不知道這個翻譯對不對?)字符串!回文字符串關于某一個字符對稱,在左右兩邊與中心相同距離的字符相等。

那么還需要注意的是對稱中心可以有多個相同的字符組成,如下圖:

?

?

所以編程實現時可以先從對稱中心入手,從字符串位置0開始作為對稱中心依次驗證。時間復雜度O(n2);

char* longestPalindrome(char* s) {int len=strlen(s);int begin=0,maxlen=0;for(int i=0;i<len;i++){int left=i,right=i;while(right<len-1 && s[right]==s[right+1])right++;while(left>0 && right<len-1 && s[left-1]==s[right+1]){left--;right++;}if((right-left+1)>maxlen){maxlen=right-left+1;begin=left;}}char* s_out=malloc((maxlen+1)*sizeof(char));for(int i=0;i<maxlen;i++){s_out[i]=s[begin++];}s_out[maxlen]='\0';return s_out; }

?

轉載于:https://www.cnblogs.com/cwq2014/p/5324488.html

總結

以上是生活随笔為你收集整理的算法_Longest Palindromic Substring(寻找最长回文字串)的全部內容,希望文章能夠幫你解決所遇到的問題。

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