在Python中检查字符串是否包含连续降序的程序
假设我们有一个带有一些数字的字符串s,我们必须检查它是否包含连续降序的整数。
因此,如果输入类似于s=“99989796”,则输出将为True,因为此字符串保持为[99,98,97,96]
为了解决这个问题,我们将按照以下步骤操作:
定义一个功能helper()
。这将花费pos,prev_num
如果pos与n相同,则
返回True
num_digits:=prev_num的位数
对于范围在num_digits-1到num_digits中的我,执行
num:=s的数字形式[从索引0到i-1]
如果helper(i,num)为true,则
返回True
如果helper(pos+i,prev_num-1),则
返回True
如果s[从索引pos到pos+i-1]和s[从索引pos到pos+i-1]的数值形式与prev_num-1相同,则
返回False
从主要方法,请执行以下操作-
n:=s的大小
对于范围1中的i等于n/2的商
返回False
让我们看下面的实现以更好地理解-
示例
class Solution: def solve(self, s): n = len(s) def helper(pos, prev_num): if pos == n: return True num_digits = len(str(prev_num)) for i in range(num_digits - 1, num_digits + 1): if s[pos:pos+i] and int(s[pos:pos+i]) == prev_num - 1: if helper(pos + i, prev_num - 1): return True return False for i in range(1, n//2 + 1): num = int(s[:i]) if helper(i, num): return True return False ob = Solution()s = "99989796" print(ob.solve(s))
输入值
"99989796"
输出结果
True