繁体   English   中英

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

[英]Check for sequential numbers in string in Python

我正在使用Python 2.7,想找出一种方法来检查给定的字符串是否包含至少4个向上或向下的连续数字?

我想出的唯一方法是检查每个字符及其后三个字符以查看它们是否为数字,然后查看每个字符之间的差是否为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 []

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM