前言
回文子串是练习数据结构和算法比较好的使用场景,可以同时练习到双指针、动态规划等一些列算法。
实现原理
优先暴力算法实现。这里定义最长回文子串长度的大小为maxLen,起点位置为0.
暴力循环过程中发现maxLen有所增长则更新maxLen和begin。
validCicle用于每次暴力循环中判断是否是回文子串。采用首尾双指针移动方式。
具体代码实现
class Solution {
public String longestPalindrome(String s) {
int maxLen=1;
int begin=0;
char[] charArray=s.toCharArray();
for(int i=0;i<charArray.length-1;i++){
for(int j=i+1;j<charArray.length;j++){
if(j-i+1>maxLen&&validCicle(charArray,i,j)){
maxLen=j-i+1;
begin=i;
}
}
}
return s.substring(begin,begin+maxLen);
}
public boolean validCicle(char[] ch