题解 | #最长回文子串#

最长回文子串

https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507

主要结题点在于:

1.在不同位置取不同长度字符串,判断是否为回文子串;

2.判断回文子串的方法:

1)判断首尾字符是否一一对应
2)将字符串逆序后,对比是否内容相同

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String input = scan.nextLine();

        //循环判断不同长度的字符串是否为回文串
        for(int i=input.length();i>=1;i--){//i代表回文串可能的长度
            for(int j=0;j<=input.length()-i;j++){//j代表回文串开始的位置
                if(flag(input.substring(j,j+i))){
                    System.out.println(i);
                    return;
                }
            }

        }

    }

    //判断是否为回文串:
    //1.逐个字符判断;
    //2.判断逆序是否相同
    public static boolean flag(String str) {
        //逐个字符判断
//         for (int i = 0; i < str.length() / 2; i++) {
//             if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
//                 return false;
//             }
//         }
//         return true;

        //判断逆序是否相同
        String reStr=new StringBuilder(str).reverse().toString();
        if(reStr.equals(str)){
            return true;
        }else{
            return false;
        }

    }
}
全部评论

相关推荐

Java面试先知:我也是和你一样的情况,hr 说等开奖就行了
点赞 评论 收藏
分享
11-03 18:50
门头沟学院 Java
安远迢迢:问就是半年
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务