输入一个字符串,判断字符串中最大对称字串的长度

输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。


对整个方法进行分析,如下是分析思路

1.首先,是判断字符串是不是对称字串的方法。
将字符串转换成字符数组。比较对称轴两端是不是相同,如果有不相同元素,那么就返回false
用了array数组的角标,
if(chr[min++]!=chr[max–]) 两端位置逐个比较
2.取字符串的子串,然后逐个判断字串是否是对称的,取出最长的对称字串

package HWday01;

public class HW07 {
    //输入一个字符串,判断字符串中最大对称字串的长度
    public static void main(String[] args) {
        String str="geogle";
        System.out.println("===="+MaxSubStr(str));
    }
    //返回最长对称数组
    public static String MaxSubStr(String str){
        String substr="";  //空字符串
        for(int i=str.length();i>=2;i++){
            for(int j=0;j<i-1;j++){
                String temp=str.substring(j,i);
                if(duiche(temp) && substr.length()<temp.length()){
                    substr=temp;
                }
            }
        }
        return substr;
    }
    //判断对称方法
    public static boolean duiche(String str){
        char[] ch=str.toCharArray();
        int min=0;
        int max=ch.length-1;
        while (min<max){
            if(ch[min]!=ch[max]){
                return false;
            }
            min++;
            max--;
        }
        return true;
    }
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值