@yexiaoqi
2022-05-12T02:51:54.000000Z
字数 656
阅读 715
刷题 华为机试
题目:输入一个字符串仅包含大小写字母和数字,求字符串中包含的最长的非严格递增连续数字序列长度。
比如: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);}}
