华为OD机试 2024E卷题库疯狂收录中,刷题 点这里。
实战项目访问:http://javapub.net.cn/
专栏导读
本专栏收录于 《华为OD机试(JAVA)真题(E卷+D卷+A卷+B卷+C卷)》 。
刷的越多,抽中的概率越大,私信javapub,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。
在字符串中找出连续最长的数字串
输入一个字符串,返回其最长的数字子串,以及其长度。若有多个最长的数字子串,则将它们全部输出(按原字符串的相对位置)
数据范围:字符串长度 1≤n≤200 , 保证每组输入都至少含有一个数字
输入描述:
输入一个字符串。输出描述:
输出字符串中最长的数字字符串和它的长度,中间用逗号间隔。如果有相同长度的串,则要一块儿输出(中间不要输出空格)。示例1
输入
abcd12345ed125ss123058789
a8a72a6a5yy98y65ee1r2输出
123058789,9
729865,2说明
样例一最长的数字子串为123058789,长度为9
样例二最长的数字子串有72,98,65,长度都为2Java 编程
package cn.net.javapub.demo2.demo;
/**
* @author: shiyuwang
* @url: http://javapub.net.cn
*/
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
while ((str = br.readLine()) != null) {
char[] chars = str.toCharArray();
int max = 0;
String res = null;
for (int i = 0; i < chars.length; i++) {
if (chars[i] >= '0' && chars[i] <= '9') {
int start = i;
while (i < chars.length && chars[i] >= '0' && chars[i] <= '9') {
i++;
}
int len = i - start;
if (len > max) {
max = len;
res = str.substring(start, i);
} else if (len == max) {
max = len;
res = res + str.substring(start, i);
}
}
}
System.out.println(res + "," + max);
}
}
}展示效果:

🏆下一篇: 华为OD机试 - 走方格的方案数 (Java 2024 E卷 100分) 🏆本文收录于, 搬砖工逆袭Java架构师
刷的越多,抽中的概率越大,私信javapub,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。
优质合集推荐
《突击面试》Java面试题合集
《面试1v1》
《编程工作总结》

















