求最长回文子串的长度
class Solution {
public:
int fun(string& s, int begin, int end){
//每个中心点开始扩展
while(begin >= 0 && end < s.length() && s[begin] == s[end]){
begin--;
end++;
}
//返回长度
return end - begin - 1;
}
int getLongestPalindrome(string A) {
int maxlen = 1;
//以每个点为中心
for(int i = 0; i < A.length() - 1; i++)
//分奇数长度和偶数长度向两边扩展
maxlen = max(maxlen, max(fun(A, i, i), fun(A, i, i + 1)));
return maxlen;
}
};
public:
int fun(string& s, int begin, int end){
//每个中心点开始扩展
while(begin >= 0 && end < s.length() && s[begin] == s[end]){
begin--;
end++;
}
//返回长度
return end - begin - 1;
}
int getLongestPalindrome(string A) {
int maxlen = 1;
//以每个点为中心
for(int i = 0; i < A.length() - 1; i++)
//分奇数长度和偶数长度向两边扩展
maxlen = max(maxlen, max(fun(A, i, i), fun(A, i, i + 1)));
return maxlen;
}
};
全部评论
相关推荐
点赞 评论 收藏
分享
查看20道真题和解析 点赞 评论 收藏
分享
11-03 16:42
井冈山大学 Java 点赞 评论 收藏
分享


影石Insta360公司氛围 452人发布