LeetCode 5
Longest Palindromic Substring
Problem Description:
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example 1:
Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.Example 2:
Input: "cbbd"
Output: "bb"Solution:
class Solution {
public:
string longestPalindrome(string s) {
int maxlength = 0;
int start = 0;
int stop = 0;
int flag = 0; //用flag来标识是否回文子字符串
int circle = 0;
int begin = 0; //用begin来标识最长回文子字符串的起始位置
int end = 0; //用end来标识最长回文子字符串的结束位置
string result = "";
for (int i = 0; i < s.length(); i++) {
for (int j = i; j < s.length(); j++) {
if (i < j) {
start = i;
stop = j;
while(start < stop) {
if (s[start] != s[stop]) {
circle = 1;
break;
}
start++;
stop--;
}
if (circle == 0)
flag = 1;
} else {
flag = 1;
}
if (flag) {
int len = j-i+1;
if (len > maxlength) {
maxlength = len;
begin = i;
end = j;
}
}
flag = 0;
circle = 0;
}
}
for (int k = begin; k <= end; k++) {
result += s[k];
}
return result;
}
};