当前位置: 首页 > 面试经验 >

【OD统一考试B卷】 非严格递增连续数字序列 C++

优质
小牛编辑
90浏览
2023-09-06

【OD统一考试B卷】 非严格递增连续数字序列 C++

题目描述

输入一个字符串仅包含大小写字母和数字,求字符串中包含的最长的非严格递增连续数字序列的长度,(比如12234属于非严格递增连续数字序列)。

输入描述

输入一个字符串仅包含大小写字母和数字,输入的字符串最大不超过255个字符。

输出描述

最长的非严格递增连续数字序列的长度

ACM输入输出模式

如果你经常使用Leetcode,会知道letcode是不需要编写输入输出函数的。但是华为OD机考使用的是 ACM 模式,需要手动编写输入和输出。

所以最好在牛-客上提前熟悉这种模式。例如C++使用cin/cout,python使用input()/print()。JavaScript使用node的readline()console.log()。Java 使用sacnner/system.out.print()

核心代码

for (int i = 0; i < str.length(); i++) {
  if (isdigit(str[i])) { // 如果是数字
    int curNum = str[i] - '0'; // 当前数字
    if (i > 0 && curNum < str[i-1] - '0') { // 如果当前数字小于前一个数字
      start = i; // 重置当前连续数字序列的起始位置
      curLen = 1; // 重置当前连续数字序列的长度
    } else {
      curLen = i - start + 1; // 当前连续数字序列长度加1
    }
  }  
#华为求职进展汇总#
 类似资料: