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

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

http://www.nowcoder.com/questionTerminal/2c81f88ecd5a4cc395b5308a99afbbec

无须使用正则表达式

import java.util.*;

public class Main {

    public Main() {
    }

    public int continumax(List<String> pOutputstr,  String intputstr) {
        int max = 0 ;
        StringBuilder s = new StringBuilder();
        for (int i = 0; i < intputstr.length(); i++) {
            // 找出连续最长数字串
            if (intputstr.charAt(i) >= '0' && intputstr.charAt(i) <= '9') {
                while (i < intputstr.length() && intputstr.charAt(i) >= '0' && intputstr.charAt(i) <= '9') {
                    s.append(intputstr.charAt(i++));
                }
                max = Math.max(max, s.length());
                pOutputstr.add(s.toString());
                s.setLength(0);
            }
        }
        // 移除短的数字串
        for (int i = 0; i < pOutputstr.size(); i++) {
            if (pOutputstr.get(i).length() < max) {
                pOutputstr.remove(i);
                i--;
            }
        }
        return max;
    }

    public static void main(String[] args) {
        Main solution = new Main();
        Scanner in = new Scanner(System.in);
        while (in.hasNextLine()) {
            String pInStr = in.nextLine();
            List<String> pOutputstr = new LinkedList<>();
            int res = solution.continumax(pOutputstr, pInStr);
            for (String str : pOutputstr) {
                System.out.print(str);
            }
            System.out.println("," + res);
        }

    } 
}
全部评论

相关推荐

最近和朋友聊天,她说了句让我震惊的话:"我发现我连周末点外卖都开始'最优解'了,一定要赶在高峰期前下单,不然就觉得自己亏了。"这不就是典型的"班味入侵"吗?工作思维已经渗透到生活的方方面面。
小型域名服务器:啊?我一直都这样啊?我还以为是我爱贪小便宜呢?每次去实验室都得接一杯免费的开水回去,出门都得规划一下最短路径,在宿舍就吃南边的食堂,在实验室就吃北边的食堂,快递只有顺路的时候才取。
点赞 评论 收藏
分享
one_t:硕还是本?什么岗
点赞 评论 收藏
分享
2 1 评论
分享
牛客网
牛客企业服务