0

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

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

还有另一种方法吗?

先感谢您!

4

1 回答 1

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 []
于 2016-10-20T12:34:45.720 回答