2016-10-20 2 views
0

Ich benutze Python 2.7 und möchte herausfinden, gibt es eine Möglichkeit zu überprüfen, ob eine gegebene Zeichenfolge mindestens 4 fortlaufende Nummern nach oben oder unten enthält?Suchen Sie nach fortlaufenden Zahlen in der Zeichenfolge in Python

Der einzige Weg, ich tun konnte, ist jedes Zeichen und seine drei folgenden Zeichen zu überprüfen, um zu sehen, ob sie Ziffern sind und dann zwischen den einzelnen Zeichen ist 1.

Gibt es eine andere Art und Weise, wenn der Unterschied zu sehen, tun es?

Vielen Dank im Voraus!

+2

definieren Zahlen, könnte dies "ab12345cd" oder "AB1011121314cD" sein, zum Beispiel 1, 2, 3, 4 oder 10 11 12 13, was ich meine ist, wollen Sie Zahlen finden oder DIGITS – DrPrItay

+0

Es gibt fast sicherlich eine beliebige Anzahl von Möglichkeiten, es zu tun. Sie sollten Ihren Code auf der Code-Überprüfungsseite veröffentlichen. http://codereview.stackexchange.com/ – Sarcoma

Antwort

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 [] 
Verwandte Themen