[关闭]
@yexiaoqi 2022-05-12T02:51:54.000000Z 字数 656 阅读 354

非严格连续递增数字序列

刷题 华为机试


题目:输入一个字符串仅包含大小写字母和数字,求字符串中包含的最长的非严格递增连续数字序列长度。

比如:12234属于非严格递增数字序列
输入:abc2234019A334bc
输出:4
说明:2234为最长的非严格递增连续数字序列,所以长度为4
测试用例:
aaaaaa44ko543j123j7345677781 --> 8
aaaaa34567778a44ko543j123j71 --> 8
345678a44ko543j123j7134567778aa --> 9

  1. public class Main {
  2. public static void main(String[] args) {
  3. Scanner sc = new Scanner(System.in);
  4. String str = sc.nextLine();
  5. int curLen = 0;
  6. int maxLen = 0;
  7. char lastNum = '0'; //存储上一个数字字符
  8. for (int i = 0; i < str.length(); i++) {
  9. char c = str.charAt(i);
  10. if (c >= lastNum && c <= '9') { //是非严格递增连续数字序列
  11. curLen++;
  12. lastNum = c;
  13. maxLen = Math.max(curLen, maxLen);
  14. } else if (c >= '0' && c <= '9') { //是数字,但是小于上一个数字
  15. curLen = 1;
  16. lastNum = c;
  17. } else { //是字母
  18. curLen = 0;
  19. lastNum = '0';
  20. }
  21. }
  22. System.out.println(maxLen);
  23. }
  24. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注