@yexiaoqi
2022-05-12T10:51:54.000000Z
字数 656
阅读 476
刷题
华为机试
题目:输入一个字符串仅包含大小写字母和数字,求字符串中包含的最长的非严格递增连续数字序列长度。
比如:12234属于非严格递增数字序列
输入:abc2234019A334bc
输出:4
说明:2234为最长的非严格递增连续数字序列,所以长度为4
测试用例:
aaaaaa44ko543j123j7345677781
--> 8
aaaaa34567778a44ko543j123j71
--> 8
345678a44ko543j123j7134567778aa
--> 9
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int curLen = 0;
int maxLen = 0;
char lastNum = '0'; //存储上一个数字字符
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= lastNum && c <= '9') { //是非严格递增连续数字序列
curLen++;
lastNum = c;
maxLen = Math.max(curLen, maxLen);
} else if (c >= '0' && c <= '9') { //是数字,但是小于上一个数字
curLen = 1;
lastNum = c;
} else { //是字母
curLen = 0;
lastNum = '0';
}
}
System.out.println(maxLen);
}
}