我正在使用 Python 2.7,想知道有没有办法检查给定的字符串是否包含至少 4 个上升或下降的连续数字?
我能想出的唯一方法是检查每个字符及其后面的 3 个字符,看它们是否是数字,然后查看每个字符之间的差异是否为 1。
还有另一种方法吗?
先感谢您!
我正在使用 Python 2.7,想知道有没有办法检查给定的字符串是否包含至少 4 个上升或下降的连续数字?
我能想出的唯一方法是检查每个字符及其后面的 3 个字符,看它们是否是数字,然后查看每个字符之间的差异是否为 1。
还有另一种方法吗?
先感谢您!
def has_sequence(s):
"""Returns sequence if found, empty list otherwise."""
pos = 0
stack = []
while pos != len(s):
try:
val = int(s[pos])
except ValueError:
pos += 1
stack = []
continue
if not stack:
stack.append(val)
elif stack[-1] + 1 == val:
stack.append(val)
if len(stack) == 4:
return stack
else:
stack = []
pos += 1
return []