zoukankan      html  css  js  c++  java
  • 刷题5. Longest Palindromic Substring

    一、题目说明

    Longest Palindromic Substring,求字符串中的最长的回文。

    Difficuty是Medium

    二、我的实现

    经过前面4个题目,我对边界考虑越来越“完善”了。

    总共提交了5次:

    第1、2次:Wrong Answer

    主要是"cbbd"错误了,重复的判断逻辑上出了点小问题

    第3、4次: Time Limit Exceeded

    我本地代码运行没问题的,但是提交后,报错。给了一个超长的用例:

    321012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210012321001232100123210123210012321001232100123210123
    

    我本地运行是no problem,但是提交后不行。

    我继续优化代码,第5次提交终于对了。本次提交代码性能如下:

    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;
    }
    
    所有文章,坚持原创。如有转载,敬请标注出处。
  • 相关阅读:
    hdu 5101 Select
    hdu 5100 Chessboard
    cf B. I.O.U.
    cf C. Inna and Dima
    cf B. Inna and Nine
    cf C. Counting Kangaroos is Fun
    Radar Installation 贪心
    spfa模板
    Sequence
    棋盘问题
  • 原文地址:https://www.cnblogs.com/siweihz/p/12232016.html
Copyright © 2011-2022 走看看