17. 非严格递增连续数字序列

56 阅读1分钟

题目描述

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

输入描述

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

输出描述

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

用例

输入abc2234019A334bc
输出4
说明2234为最长的非严格递增连续数字序列,所以长度为4。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    string str;
    cin >> str;
    int len = 0;
    int maxLen = 0;
    int maxNum = 0;
    for (int i = 0; i < str.size(); i++) {
        if (isdigit(str[i])) {
            int curNum = str[i] - '0';
            if (len == 0) {
                len = 1;
                maxNum = curNum;
            } else {
                if (curNum >= maxNum) {
                    len++;
                } else {
                    len = 1;
                }
                maxNum = curNum;
            }
        } else {
            len = 0;
            maxNum = 0;
        }
        maxLen = max(maxLen, len);
    }
    cout << maxLen;
    return 0;
}