题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。
#include<iostream>
#include <string>
using namespace std;
int MaxLength(char* pString){
if(NULL == pString)
return 0;
int maxLength = 1;
char* pChar = pString;
char* Position;
int currentLength;
while(*pChar != '\0'){
char* pFirst = pChar-1;
char* pLast = pChar+1;
while(pFirst>=pString && *pLast != '\0' && *pFirst == *pLast){
--pFirst;
++pLast;
}
currentLength = pLast-pFirst-1;
if(currentLength>maxLength){
maxLength = currentLength;
Position = pChar;
}
pFirst = pChar;
pLast = pChar+1;
while(pFirst>=pString && *pLast != '\0' && *pFirst == *pLast){
--pFirst;
++pLast;
}
currentLength = pLast-pFirst-1;
if(currentLength>maxLength){
maxLength = currentLength;
Position = pChar;
}
pChar++;
}
return maxLength;
}
int main(){
char* pString = "ab";
cout << "The length of pString: " << strlen(pString) << endl;
cout << "The Longest symmetry of pString is: " << MaxLength(pString) << endl;
return 0;
}