无题 | #在字符串中找出连续最长的数字串#

在字符串中找出连续最长的数字串

https://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        scanner.useDelimiter("\n");
        while (scanner.hasNext()) {
            String S = scanner.next();
            int max = 0;
            int left=0,right=0;
            HashMap<Integer, Integer> hashMap = new HashMap<>();
            while (left<S.length()) {
                if (Character.isDigit(S.charAt(left))) {
                    right = left;
                    while (right<S.length()) {
                        if (!Character.isDigit(S.charAt(right))) {
                            break;
                        }
                        right++;
                    }
                    right--;
                    if (max<=right-left+1) {
                        max = right-left+1;
                        hashMap.put(left, max);
                    }
                    left=right;
                }
                left++;
            }

            Integer value = hashMap.entrySet().stream().max(Map.Entry.comparingByValue()).get().getValue();
            for (Map.Entry<Integer, Integer> entry : hashMap.entrySet()) {
                if (Objects.equals(entry.getValue(), value)) {
                    System.out.print(S.substring(entry.getKey(), entry.getKey()+value));
                }
            }
            System.out.print(","+value+"\r\n");
        }
    }
}

全部评论

相关推荐

今晚做笔试的还有机会约面吗?有听说后面做笔试的会被认为来华为的意愿度不是很高.....
ggrr:不会,华为笔试都要排队的。不是说想写就能发的。有的人投递晚了几天就排在后面写了。
投递华为技术有限公司等公司10个岗位
点赞 评论 收藏
分享
码农索隆:1.照片换成证件照。 2.专业技能写的太少了,太单薄了。 3.项目经历描写的太冗余,分成几点。 4.无实习经历,看看能不能包一个。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
09-19 14:43
实习之后才知道团队氛围的重要性来了一周,从第三天就开始想离职……团子背景、薪资福利再怎么好,也不香了
码农索隆:确实,团队的氛围真的很影响心情,好的团队上班感觉轻松愉快,不好的团队,每天没事就整点幺蛾子
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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