题解 | #密码截取#

密码截取

https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc  = new Scanner(System.in);
        String in = sc.nextLine();
        String[] str = in.split("");
        System.out.println(longestPwd(str));
    }
    public static int longestPwd(String[] str) {
        int maxLong = 1;
        int n = str.length;
        int[] nums = new int[n];
        nums[0] = 1;
        for (int i = 1; i < n - 1; i++) {
		  //跳过相同的字符
            if (str[i].equals(str[i - 1])) {
                nums[i] = nums[i - 1];
                continue;
            }
            nums[i] = 1;
            int left = i - 1;
            int right = i + 1;
		  //找到左边第一个不同的字符
            while (left > 0 && str[left].equals(str[i])) {
                left--;
                nums[i]++;
            }
		  //找到右边第一个不同的字符
            while (right < n && str[right].equals(str[i])) {
                right++;
                nums[i]++;
            }
            for (int j = 0; right + j < n && left - j >= 0; j++) {
                if (str[left - j].equals(str[right + j])) {
                    nums[i] += 2;
                } else {
                    break;
                }
            }
        }
        for (int i = 0; i < n; i++) {
            maxLong = Math.max(maxLong, nums[i]);
        }
        return maxLong;
    }
}

全部评论

相关推荐

书海为家:实习是成为大厂正式员工很好的敲门砖,看您的简历中有一段实习经历,挺好的。我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己实习时做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
点赞 评论 收藏
分享
02-26 13:56
已编辑
重庆财经学院 Java
King987:你有实习经历,但是写的也太简单了,这肯定是不行的,你主要要包装实习经历这一块,看我的作品,你自己包装一下吧,或者发我,我给你出一期作品
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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