longest palindromic substring 有问题
1 class Solution { 2 public: 3 string LCS( string& str1,string& str2){ 4 int xlen=str1.size(); //横向长度 5 vector<int> tmp(xlen); //保存矩阵的上一行 6 vector<int> arr(tmp); //当前行 7 int ylen=str2.size(); //纵向长度 8 int maxele=0; //矩阵元素中的最大值 9 int pos=0; //矩阵元素最大值出现在第几列 10 for(int i=0;i<ylen;i++){ 11 string s=str2.substr(i,1); 12 arr.assign(xlen,0); //数组清0 13 for(int j=0;j<xlen;j++){ 14 if(str1.compare(j,1,s)==0){ 15 if(j==0) 16 arr[j]=1; 17 else 18 arr[j]=tmp[j-1]+1; 19 if(arr[j]>maxele){ 20 maxele=arr[j]; 21 pos=j; 22 } 23 } 24 } 25 // { 26 // vector<int>::iterator iter=arr.begin(); 27 // while(iter!=arr.end()) 28 // cout<<*iter++; 29 // cout<<endl; 30 // } 31 tmp.assign(arr.begin(),arr.end()); 32 } 33 string res=str1.substr(pos-maxele+1,maxele); 34 return res; 35 } 36 string longestPalindrome(string s) { 37 // Start typing your C/C++ solution below 38 // DO NOT write int main() function 39 if( s == "" ) return ""; 40 string str = ""; 41 for(int i=s.length()-1;i>=0;i--) 42 str += s[i]; 43 return LCS(str,s); 44 } 45 };
posted on 2013-09-05 16:24 jumping_grass 阅读(132) 评论(0) 收藏 举报
 
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号