【编程题目 | 100分】非严格递增连续数字序列 [ 100 / 简单 ]
非严格递增连续数字序列
题目描述:
输入一个字符串仅包含大小写字母和数字,求字符串中包含的最长的非严格递增连续数字序列的长度(比如12234属于非严格递增连续数字序列)。
输入描述:
输入一个字符串仅包含大小写字母和数字,输入的字符串最大不超过255个字符。
输出描述:
最长的非严格递增连续数字序列的长度
示例 1:
输入
abc2234019A334bc
输出
4
说明:
2234为最长的非严格递增连续数字序列,所以长度为4
测试用例:
aaaaaa44ko543j123j7345677781 --> 34567778
aaaaa34567778a44ko543j123j71 --> 34567778
345678a44ko543j123j7134567778aa --> 134567778
参考代码:
Java代码实现:
import java.util.Scanner;
public class increaseNumSubsequences {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();
int maxLength = 0;
int length = 0;
char maxChar = '0'; // 存储上一个数字字符
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= maxChar && c <= '9') { // 判断是否是非递减
length++;
maxChar = c;
maxLength = Math.max(length, maxLength);
} else if (c >= '0' && c <= '9') { // 是数字,但小于上一个数字
length = 1;
maxChar = c;
} else { // 如果不是数字
length = 0;
maxChar = '0';
}
}
System.out.println(maxLength);
}
}