用于检查我们是否可以在 Python 中将字符串拆分为降序连续值的程序
假设我们有一个只有数字的字符串s。我们必须检查是否可以将s拆分为两个或多个非空子串,使得这些子串的数值呈非递增序列,并且每两个相邻子串的数值之差为1。例如,如果字符串是s="0080079"我们可以将其拆分为["0080","079"]和数值[80,79]。并且值是降序排列的,相邻的值相差1,所以这种方式是有效的。我们必须检查是否可以如上所述拆分s。
所以,如果输入像s="080076",那么输出将是True因为我们可以像["08","007","6"]那样拆分它,所以数值是[8,7,6].
示例
让我们看看以下实现以获得更好的理解-
def dfs(s, pre, idx, n):
if pre != -1 and int(s[idx:]) == pre - 1:
return True
for i in range(1, n-idx):
curs = s[idx: idx+i]
cur = int(curs)
if pre == -1:
if dfs(s, cur, idx+i, n):
return True
else:
if cur == pre - 1 and dfs(s, cur, idx+i, n):
return True
return False
def solve(s):
n = len(s)
if n <= 1:
return False
return dfs(s, -1, 0, n)
s = "080076"
print(solve(s))输入
"080076"输出结果
True
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下