Check if Numbers Are Ascending in a Sentence

easy string

Problem

A sentence is a list of tokens separated by single spaces. A token is either a sequence of letters or a positive integer (no leading zeros). Return true if and only if all numeric tokens, read left to right, are strictly increasing.

Inputs = "1 box has 3 blue 4 red 6 green and 12 yellow marbles"
Outputtrue
The numbers in order are 1, 3, 4, 6, 12 — strictly ascending.

def are_numbers_ascending(s):
    prev = -1
    for tok in s.split(' '):
        if tok.isdigit():
            v = int(tok)
            if v <= prev:
                return False
            prev = v
    return True
function areNumbersAscending(s) {
  let prev = -1;
  for (const tok of s.split(' ')) {
    if (/^\d+$/.test(tok)) {
      const v = parseInt(tok, 10);
      if (v <= prev) return false;
      prev = v;
    }
  }
  return true;
}
class Solution {
    public boolean areNumbersAscending(String s) {
        int prev = -1;
        for (String tok : s.split(" ")) {
            if (Character.isDigit(tok.charAt(0))) {
                int v = Integer.parseInt(tok);
                if (v <= prev) return false;
                prev = v;
            }
        }
        return true;
    }
}
bool areNumbersAscending(string s) {
    int prev = -1, i = 0, n = s.size();
    while (i < n) {
        if (isdigit(s[i])) {
            int v = 0;
            while (i < n && isdigit(s[i])) v = v * 10 + (s[i++] - '0');
            if (v <= prev) return false;
            prev = v;
        } else {
            i++;
        }
    }
    return true;
}
Time: O(n) Space: O(n)