在Python中检查字符串中的序列号

时间:2016-10-20 11:34:43

标签: python string numbers sequential-number

我正在使用Python 2.7并想知道有没有办法检查给定字符串是否包含至少4个连续数字上升或下降?

我能想到的唯一方法是检查每个字符及其后面的3个字符,看它们是否为数字,然后查看每个字符之间的差异是否为1。

还有其他办法吗?

提前谢谢!

1 个答案:

答案 0 :(得分: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 []