Longest palindrome substring
Solution in C++:
string longestPalindrome(string s) {
int low = 0;
int high = 0;
int start = 0;
int max = 1;
int len = s.length();
for(int iter = 1; iter < len; ++iter){
//If the palindrome string is of type even aabbaa
low = iter - 1;
high = iter;
while((low >= 0) && (high < len) && (s[low] == s[high])){
if((high - low + 1) > max){
start = low;
max = high - low + 1;
}
--low;
++high;
}
low = iter - 1;
high = iter + 1;
while((low >= 0) && (high < len) && (s[low] == s[high])){
if((high - low + 1) > max){
start = low;
max = high - low + 1;
}
--low;
++high;
}
}
string res;
for(int iter = start; iter < start + max; ++iter){
res.push_back(s[iter]);
}
return res;
}
Solution in C++:
string longestPalindrome(string s) {
int low = 0;
int high = 0;
int start = 0;
int max = 1;
int len = s.length();
for(int iter = 1; iter < len; ++iter){
//If the palindrome string is of type even aabbaa
low = iter - 1;
high = iter;
while((low >= 0) && (high < len) && (s[low] == s[high])){
if((high - low + 1) > max){
start = low;
max = high - low + 1;
}
--low;
++high;
}
low = iter - 1;
high = iter + 1;
while((low >= 0) && (high < len) && (s[low] == s[high])){
if((high - low + 1) > max){
start = low;
max = high - low + 1;
}
--low;
++high;
}
}
string res;
for(int iter = start; iter < start + max; ++iter){
res.push_back(s[iter]);
}
return res;
}
Comments
Post a Comment