2042. 检查句子中的数字是否递增
难度
- Easy
- Medium
- Hard
思路
题设已经保证句子一定符合正常句式,所以不用去想特殊情况,直接逐个对比句中每一个数字即可。
用 last
保存上一个数字,默认为 -1 ,用 cur
保存当前的连续数字字符串。
只要当前位的字符是数字,那么就累加到 cur
中,一旦当前位不是数字,或者下标已经到达最后一位,那么将 cur
转换为数字,与 last
进行对比,如果 last
不为 -1 ,且当前数字小于等于 last
,那么返回 False
。否则更新 last
值,并将 cur
清空。如果循环正常跳出,则返回 False
。
代码
class Solution:
def areNumbersAscending(self, s: str) -> bool:
last = -1
cur = ""
n = len(s)
for idx in range(n):
if 48 <= ord(s[idx]) <= 57:
cur += s[idx]
if (ord(s[idx]) < 48 or ord(s[idx]) > 57) or idx == n - 1:
if cur != "":
num = int(cur)
if last != -1 and num <= last: return False
last = num
cur = ""
return True
Comments NOTHING