题解 | 字符串中找出连续最长的数字串

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            String line = in.nextLine();

            String number = process(line);
            System.out.println(number);
        }
    }


    private static String process(String s) {
        if (s.isEmpty()) return "";
        Stack<Integer> stack = new Stack<>();
        int idx = 0;
        int max = 0;
        int start = 0;
        while (idx < s.length()) {
            char c = s.charAt(idx);
            if (Character.isDigit(c)) {
                stack.push(idx);
            } else {
                // 直接计算长度 清空栈
                if (max < stack.size()) {
                    start = stack.firstElement();
                    max = stack.size();
                }
                stack.clear();
            }
            idx++;
        }
        if (max < stack.size()) { //  防止整个字符串或者 最后一个字符串都是数字 没法进行计算
            start = stack.firstElement();
            max = stack.size();
        }
        return s.substring(start, start + max);
    }
}

全部评论

相关推荐

01-07 21:34
已编辑
浙江大学 Java
时间线12.19&nbsp;官网投递简历12.20&nbsp;hr打电话问了一些基本情况12.21&nbsp;约一面12.27&nbsp;一面,一小时内约二面1.2&nbsp;二面,当晚挂一面1.&nbsp;请自我介绍一下。2.&nbsp;这个项目是由你们几个人一起做的吗?3.&nbsp;未来这个平台大家是做什么样的打算呢?4.&nbsp;它的核心竞争力是什么?5.&nbsp;作为后端开发者,整个数据库层面的设计是什么样的?有哪些主要的表?它们之间的关系如何?6.&nbsp;业务是如何实现的?7.&nbsp;系统最难的地方或技术上挑战最大的地方在哪里?8.&nbsp;ThreadLocal的作用是什么?它的实现原理是怎样的?9.&nbsp;使用ThreadLocal的过程中需要注意什么?10.&nbsp;除了手动释放ThreadLocal中的值外,它里面还有其他设计来避免内存泄漏吗?11.&nbsp;动态线程池是怎么实现的?12.&nbsp;动态调整机制是什么?我们应该设置多少核心线程数和最大线程数,以及通过哪里去设置?13.&nbsp;动态线程池的“动态”体现在什么地方?14.&nbsp;设置线程池参数是实时生效的吗?15.&nbsp;什么是自旋锁?16.&nbsp;除了自旋锁策略以外,Java里对同步(synchronized)还有什么其他设计?17.&nbsp;请介绍下synchronized的工作原理。18.&nbsp;提到了限流,请问常见的限流算法有哪些?19.&nbsp;下面我们来做个编程题。您现在可以开始解题了。20.&nbsp;写题(先用&nbsp;Cpp&nbsp;写了个大暴力,后面让用&nbsp;Java&nbsp;再实现一遍,讲了时间复杂度,又讲了一遍&nbsp;DP&nbsp;做法的思路,没让再写一遍)21.&nbsp;反问:对实习生的要求,上班时间。结果:一小时后通知过了,约二面。二面1.&nbsp;你的网站是一个创业项目吗?(怎么可能...)2.&nbsp;你这个网站和其他同类型的有什么区别?3.&nbsp;它们的核心竞争力是什么?(哪里有什么个人竞争力啊555)4.&nbsp;现在有多少用户了?(说还在推广)5.&nbsp;除了你自己之外,还有其他人参与这个项目吗?6.&nbsp;如果这个网站能够发展起来,最核心的依赖是什么?或者说你觉得最重要的一件事是什么?7.&nbsp;内容是如何获取的?8.&nbsp;如何解决内容采集方面的人力瓶颈问题?9.&nbsp;你们计划如何解决内容时效性的问题?10.&nbsp;你们有没有考虑过通过什么方式来吸引用户贡献?(搞个排行榜?)11.&nbsp;对于用户创作内容的行为,有考虑过给予什么形式的激励吗?(红包激励?被反问没钱)12.&nbsp;推广网站时,实际能做哪些事情?(引流)13.&nbsp;团队目前使用的是哪个版本的Java?(1.8)14.&nbsp;如果让你调研是否要从Java&nbsp;8升级到更新的版本(如11或17),你会如何评估其必要性?(性能提升)15.&nbsp;升级JDK版本时,核心考量点是什么?(我答的是兼容性和性能提升)16.&nbsp;JDK团队在性能提升方面做了哪些优化?(我答的是JIT)17.&nbsp;你接触过的最大一张表有多少条记录?18.&nbsp;如果有一张业务表已经有六七亿条数据,并且它是一张大宽表,大概有六七十个字段,其中一些字段的尺寸较大,在日常使用中会遇到什么问题?(我答的是四层,比较慢)19.&nbsp;即使有了索引,查询仍然很慢,你觉得可能是什么原因?(不知道了)20.&nbsp;在表上新增一个字段时,如果这个表正在进行读写操作,应该如何处理以确保不影响现有操作?(我答的是搞一个副本)21.&nbsp;如果是在单独的一个数据库实例上进行这样的变更,而不是主从架构下,是否会有额外的挑战?(面试官好像理解错了,把我说的副本理解成了主从架构)22.&nbsp;在学习或做项目过程中,对你来说最有挑战的部分是什么?(这个问题之后需要细化一下)23.&nbsp;你之前有面试过其他公司吗?目前那些面试流程走到哪一步了?(我答的在走流程)24.&nbsp;面试者是否有任何想要问面试官的问题,比如团队主要负责的业务内容?25.无手撕代码26.&nbsp;反问:什么时候出结果,业务内容。结果:当晚挂。反思:问了很多关于项目管理,项目推广这块的问题,但是真没啥想法,然后场景题现在还没接触过,回答的不行。#小红书##日常实习##凉经#
查看43道真题和解析
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务