2042.检查句子中的数字是否递增
链接:2042.检查句子中的数字是否递增
难度:Easy
标签:字符串
简介:给你一个表示句子的字符串 s ,你需要检查 s 中的 全部 数字是否从左到右严格递增(即,除了最后一个数字,s 中的 每个 数字都严格小于它 右侧 的数字)。
题解 1 - cpp
- 编辑时间:2023-01-03
- 内存消耗:6.1MB
- 编程语言:cpp
- 解法介绍:遍历。
class Solution {
public:
    bool areNumbersAscending(string s) {
        int prev = 0;
        for (int i = 0; i < s.size(); i++) {
            if (!isdigit(s[i])) continue;
            int num = 0;
            while (i < s.size() && isdigit(s[i])) num = num * 10 + s[i++] - '0';
            if (prev >= num) return false;
            prev = num;
        }
        return true;
    }
};
题解 2 - rust
- 编辑时间:2023-01-03
- 内存消耗:2.2MB
- 编程语言:rust
- 解法介绍:同上。
impl Solution {
    pub fn are_numbers_ascending(s: String) -> bool {
        let s: Vec<char> = s.chars().collect();
        let mut i = 0;
        let mut prev = 0;
        while i < s.len() {
            if s[i].is_digit(10) {
                let mut num = 0;
                while i < s.len() && s[i].is_digit(10) {
                    num = num * 10 + (s[i] as i32 - '0' as i32);
                    i += 1;
                }
                if prev >= num {
                    return false;
                }
                prev = num
            }
            i += 1;
        }
        true
    }
}