5902. 檢查句子中的數字是否遞增
句子是由若干 token 組成的一個列表,token 間用 單個 空格分隔,句子沒有前導或尾隨空格。每個 token 要么是一個由數字 0-9 組成的不含前導零的 正整數 ,要么是一個由小寫英文字母組成的 單詞 。
- 示例,“a puppy has 2 eyes 4 legs” 是一個由 7 個 token 組成的句子:“2” 和 “4” 是數字,其他像 “puppy” 這樣的 tokens 屬于單詞。
給你一個表示句子的字符串 s ,你需要檢查 s 中的 全部 數字是否從左到右嚴格遞增(即,除了最后一個數字,s 中的 每個 數字都嚴格小于它 右側 的數字)。
如果滿足題目要求,返回 true ,否則,返回 false 。
示例 1:
輸入:s = "1 box has 3 blue 4 red 6 green and 12 yellow marbles"
輸出:true
解釋:句子中的數字是:1, 3, 4, 6, 12 。
這些數字是按從左到右嚴格遞增的 1 < 3 < 4 < 6 < 12 。示例 2:
輸入:s = "hello world 5 x 5"
輸出:false
解釋:句子中的數字是:5, 5 。這些數字不是嚴格遞增的。示例 3:
輸入:s = "sunset is at 7 51 pm overnight lows will be in the low 50 and 60 s"
輸出:false
解釋:s 中的數字是:7, 51, 50, 60 。這些數字不是嚴格遞增的。示例 4:
輸入:s = "4 5 11 26"
輸出:true
解釋:s 中的數字是:4, 5, 11, 26 。
這些數字是按從左到右嚴格遞增的:4 < 5 < 11 < 26 。
提示:
- 3 <= s.length <= 200
- s 由小寫英文字母、空格和數字 0 到 9 組成(包含 0 和 9)
- s 中數字 token 的數目在 2 和 100 之間(包含 2 和 100)
- s 中的 token 之間由單個空格分隔
- s 中至少有 兩個 數字
- s 中的每個數字都是一個 小于 100 的 正 數,且不含前導零
- s 不含前導或尾隨空格
解題思路
分隔字符串,只處理以數字開頭的單詞,判斷這些單詞之間是否只存在遞增關系。
代碼
class Solution {public boolean areNumbersAscending(String s) {//int pre=-1;String[] split = s.split(" ");for (String s1 : split) {if (Character.isDigit(s1.charAt(0))){int cur=Integer.parseInt(s1);if (cur<=pre)return false;pre=cur;}}return true;}
}