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

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

https://www.nowcoder.com/practice/bd891093881d4ddf9e56e7cc8416562d

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine();

        int start = 0;
        int end = 0;
        int len = 0;
        int max = 0;

        // 遍历字符串,找到最长数字子串
        for (int i = 0; i < s.length(); i++) {
            if (Character.isDigit(s.charAt(i))) {
                len++;  // 如果是数字,增加当前数字串的长度
            } else {
                // 遇到非数字字符时,检查当前数字串是否更长
                if (len > max) {
                    start = i - len;  // 记录最长数字串的起始位置
                    end = i - 1;      // 记录最长数字串的结束位置
                    max = len;        // 更新最大长度
                }
                len = 0;  // 重置数字串的长度
            }

            // 如果到达字符串末尾,检查是否需要更新
            if (i == s.length() - 1 && len > max) {
                start = i - len + 1;
                end = i;
            }
        }

        // 输出最长数字串
        if (max > 0) {
            System.out.print(s.substring(start, end + 1));
        } else {
            System.out.print("");  // 如果没有数字串,输出空字符串
        }
    }
}

全部评论

相关推荐

03-04 19:02
云南大学 Java
Yki_:没挂,只是没人捞,该干啥干啥,等着就好了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务