题目
句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格。每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个由小写英文字母组成的 单词 。
示例,“a puppy has 2 eyes 4 legs” 是一个由 7 个 token 组成的句子:“2” 和 “4” 是数字,其他像 “puppy” 这样的 tokens 属于单词。
给你一个表示句子的字符串 s ,你需要检查 s 中的 全部 数字是否从左到右严格递增(即,除了最后一个数字,s 中的 每个 数字都严格小于它 右侧 的数字)。
如果满足题目要求,返回 true ,否则,返回 false 。
思路
遍历句子,因为是正整数,所以只需要设前一个数初始值为-1,每一次保留上一个数字地值即可
代码
class Solution {
public:
bool areNumbersAscending(string s) {
int flag = 1;
int n = s.size();
int pre = - 1;
int i = 0;
while(i < n){
if(isdigit(s[i])){
string tempnum = "";
while(isdigit(s[i])){
tempnum += s[i];
i++;
}
int ans = stoi(tempnum);
if(ans <= pre){
flag = 0;
break;
}
pre = ans;
i++;
}else i++;
}
return flag == 0 ? false : true;
}
};