给定一个字符串s,找到s中最长的回文子串。
回文子串:从左到右,从右到左都一样的字符串。
示例:输入:s=“baa”,输出:“aa”
输入:s=“baba”,输出:“bab”,“aba”
BackTextString.java
import java.io.IOException;
import java.util.Scanner;
public class BackTextString{
private static String s;
private static char[] c;
private static int a=0;
public static void main(String[] args) throws IOException{
Scanner in=new Scanner(System.in);
s=in.next();
c=s.toCharArray();
for(int i=0;i<s.length();i++){
for(int j=i+1;j<s.length();j++) {
for(int k=0;k<s.length()&&i+k<j-k;k++) {
if(c[i+k]= =c[j-k])
a=1;
else
{a=0;break;}
}
if(a= =1)
System.out.println(s.substring(i,j+1));
}
}
}
}
注意:
导入输入需要的类和抛出异常。
字符串相关的重要方法:toCharArray()与substring(i,j+1),前者是字符串转换字符数组,后者是截取字符串的方法。
需要一个标记来叠加每一次左边与右边的判断结果。
同时不包含单个字符,因此中间位置不能等。
算法思路:先定子字符串,用i,j。然后确定子字符串是不是回文子串。
每日算法之最长回文子串
最新推荐文章于 2024-07-28 19:41:52 发布