LeetCode题解:2042. 检查句子中的数字是否递增,直接遍历,JavaScript,详细注释

原题链接:
https://leetcode.cn/problems/check-if-numbers-are-ascending-in-a-sentence/

解题思路:

  1. 逐个搜索s,如果遇到数字,则将其逐个提取,并存储到变量curr
  2. curr与上一个数字prev对比,如果prev >= curr,表示数字非递增,返回false
  3. 如果没有顺利退出循环,表示数字为递增,返回true
/**
 * @param {string} s
 * @return {boolean}
 */
var areNumbersAscending = function(s) {
  let prev = 0 // 存储上一个搜索到数字
  let curr = 0 // 存储当前搜索到的数字

  // 逐个查找字符
  for (let i = 0; i < s.length;) {
    // 如果当前字符是数字,提取数字并与前一个数字对比
    if (/\d/.test(s[i])) {
      // 逐个提取是数字的字符,并将其转换为数字
      while (/\d/.test(s[i])) {
        curr = curr * 10 + Number(s[i++])
      }
      // 提取出数字后,与上一个数字对比,如果非递增,就返回错误
      if (prev >= curr) {
        return false
      }
      // 将当前字符作为上一个字符,供下次对比用
      prev = curr
      // 将当前字符设置为0,用于提取下一个数字
      curr = 0
    } else {
      // 如果当前字符不是数字,继续向后查找
      i++
    }
  }

  // 如果没有找到递减
  return true
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容