题解 | #最长回文子串#

最长回文子串

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

import java.util.*;

public class Main {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        while(in.hasNext()){
            char[] arr = in.nextLine().toCharArray();
            //以i或者(i,i+1)位置的节点为中间节点,向两边辐射
            int max = 0;
            for(int i = 0; i < arr.length; i++){
                int t = i;
                int i1 = t;
                int j1 = t + 1;
                int i2 = t;
                int j2 = t + 1;

                while(i1 > 0 && j1 < arr.length && arr[i1 - 1] == arr[j1]){
                    i1--;
                    j1++;
                }

                while(i2 >= 0 && j2 < arr.length && arr[i2] == arr[j2]){
                    i2--;
                    j2++;
                }
                max = Math.max(max, Math.max(j1 - i1, j2 - i2 - 1));
                i = t;
            }
            System.out.println(max);
        }
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
05-09 15:06
求好运眷顾🙏🏻:翻译:面试前没盘点好hc一下面太多了,现在在排序回去等通知
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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