每日算法之最长回文子串

给定一个字符串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。然后确定子字符串是不是回文子串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值