刷题5。最長の回文サブストリング

I、題する説明

最長の回文サブストリングは、回文で最も長い文字列を検索します。

Difficuty是ミディアム

第二に、私が実現します

前の4つの質問の後、私はより多くの「完璧な」国境の検討のためです。

5回の合計を提出しました。

第一および第二:間違った回答

主に「cbbd」過ちは、繰り返し判定ロジック上のいくつかの小さな問題があります

第3,4次:時間制限を超え

私は何の問題は、ネイティブコードを実行していないが、エラーを提出した後、持っています。彼は、長いユースケースを与えました:

321012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210123210012321001232100123210123

私は問題ありませんが、ない提出した後、ローカルで実行されます。

私は最終的に第五権利を提出し、コードを最適化していきます。コードは、次のプロパティに提出されています。

Runtime: 488 ms, faster than 5.81% of C++ online submissions for Longest Palindromic Substring.
Memory Usage: 8.7 MB, less than 91.03% of C++ online submissions for Longest Palindromic Substring.

次のように完全なコードです

#include<iostream>
#include<string>
using namespace std;

class Solution{
    public:
        string longestPalindrome(string s){
            int maxLength=1;
            string maxStr = s.substr(0,1);
            
            int len = s.length();
            if(len<=1){
                return s;
            }else{
                int i = 0;
                while(i<len){
                    int j = len-1;
                    while(j>i){
                        int t=i,k=j;
                        while(t<k && s[t]==s[k]){
                            t++;
                            k--;
                        }
                        if(t==k || t==k+1 && s[t]==s[k]){
                            if(j-i+1>maxLength){
                                maxLength = j-i+1;
                                maxStr = s.substr(i,j-i+1);
                            }
                            break;
                        }
                        j--;    
                    }

                    i++;
                }
            }
            return maxStr;
        }
};

int main(){
    Solution s;
    cout<<s.longestPalindrome("ac")<<endl;
    cout<<s.longestPalindrome("babad")<<endl;
    cout<<s.longestPalindrome("cbbd")<<endl;     
      cout<<s.longestPalindrome("321012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210123210012321001232100123210123"); 
    
    return 0;
}

おすすめ

転載: www.cnblogs.com/siweihz/p/12232016.html