给你一个仅由数字组成的字符串 s
。
请你判断能否将 s
拆分成两个或者多个 非空子字符串 ,使子字符串的 数值 按 降序 排列,且每两个 相邻子字符串 的数值之 差 等于 1
。
s = "0090089"
可以拆分成 ["0090", "089"]
,数值为 [90,89]
。这些数值满足按降序排列,且相邻值相差 1
,这种拆分方法可行。s = "001"
可以拆分成 ["0", "01"]
、["00", "1"]
或 ["0", "0", "1"]
。然而,所有这些拆分方法都不可行,因为对应数值分别是 [0,1]
、[0,1]
和 [0,0,1]
,都不满足按降序排列的要求。如果可以按要求拆分 s
,返回 true
;否则,返回 false
。
子字符串 是字符串中的一个连续字符序列。
示例 1:
输入:s = "1234" 输出:false 解释:不存在拆分 s 的可行方法。
示例 2:
输入:s = "050043"
输出:true
解释:s 可以拆分为 ["05", "004", "3"] ,对应数值为 [5,4,3] 。
满足按降序排列,且相邻值相差 1
。
示例 3:
输入:s = "9080701" 输出:false 解释:不存在拆分 s 的可行方法。
示例 4:
输入:s = "10009998"
输出:true
解释:s 可以拆分为 ["100", "099", "98"] ,对应数值为 [100,99,98] 。
满足按降序排列,且相邻值相差 1
。
提示:
1 <= s.length <= 20
s
仅由数字组成