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

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

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

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            String s = in.next();
            char[] arr = s.toCharArray();
            int len = s.length();
            int max = 0, start = 0;
            boolean isDigit = false;
            int res = 0;
            List<String> list=new ArrayList<>();
            for (int i = 0; i < len; i++) {
                if (Character.isDigit(arr[i]) && isDigit == false) {
                    start = i;
                    isDigit = true;
                } else if (!Character.isDigit(arr[i]) && isDigit) {
                    if (i - start >= max) {
                        max = i - start;
                        res = start;
                        list.add(s.substring(start,start+max));
                    }
                    isDigit = false;
                } else if (!Character.isDigit(arr[i])) {
                    isDigit = false;
                } else if (Character.isDigit(arr[i]) && i == len - 1) {
                    if (i - start +1 >= max) {
                        max = i - start + 1;
                        res = start;
                        list.add(s.substring(start,start+max));
                    }
                }
            }
            for(String str : list){
                if(str.length()==max){
                    System.out.print(str);
                }
            }
            System.out.println(","+max);
        }
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务