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

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

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

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            String str = scan.nextLine();
            char[] chrs = str.toCharArray();
            process(chrs, str);
        }
    }
    public static void process(char[] chrs, String str) {
        ArrayList<String> ans = new ArrayList<>();
        int acc = 0;
        int start = 0;
        int sign = 0;
        for (int i = 0; i < chrs.length; i++) {
            char chr = chrs[i];
            if (chr >= '0' && chr <= '9') {
                if (sign == 0) {
                    sign = 1;
                    start = i;
                }
            } else {
                if (sign == 1) {
                    sign = 0;
                    if (acc == i - start) {
                        ans.add(str.substring(start, i));
                    } else if (acc < i - start) {
                        ans.clear();
                        ans.add(str.substring(start, i));
                        acc = i - start;
                    }
                }
            }
        }
        if (sign == 1) {
            if (acc == chrs.length - start) {
                ans.add(str.substring(start));
            } else if (acc < chrs.length - start) {
                ans.clear();
                ans.add(str.substring(start));
            }
        }
        for (String tmp : ans) {
            System.out.print(tmp);
        }
        System.out.println("," + ans.get(0).length());
    }
}
全部评论
该牛油正在参与牛客写题解薅羊毛的活动,牛币,周边,京东卡超多奖品放送,活动进入倒计时!快来捡漏啦https://www.nowcoder.com/discuss/888949?source_id=profile_create_nctrack&channel=-1
点赞 回复 分享
发布于 2022-04-20 17:03

相关推荐

牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务