5747. 将字符串拆分为递减的连续值
难度中等5
给你一个仅由数字组成的字符串 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:
| 1 | 输入:s = "1234" | 
示例 2:
| 1 | 输入:s = "050043" | 
示例 3:
| 1 | 输入:s = "9080701" | 
示例 4:
| 1 | 输入:s = "10009998" | 
提示:
- 1 <= s.length <= 20
- s仅由数字组成
深搜切分位置+BigInteger(暴力解法)
- 如果在满足切分条件的情况下能够切分到末尾,那么就可以满足返回true
- 如果在满足去切分条件的情况下不能切分到末尾,不可以满足返回false
| 1 | import java.math.BigInteger; | 
 
		