Generieren Sie die Look-and-Say-Sequenz in QuizKnock in Python

Das Video von Quiz Knock wurde neulich veröffentlicht. [University of Tokyo] Fordern Sie die Google-Aufnahmeprüfung in der Google-Zentrale heraus! enthielt ** Look-and-Say-Sequenz **. Dies ist eine Folge von Zahlen, die sich gemäß der Regel ändert, dass der erste Term 1 ist und die aus dem vorherigen Term ausgelesenen Zahlen im nächsten Term angeordnet sind, wie unten gezeigt.

1   =1 ist 1(One 1)  → 1 1
1 1 =2 1s(Two 1s) → 2 1
2 1 =2 ist 1,1 ist 1(One 2, One 1) → 1 2 1 1
1 2 1 1 =1 ist 1,2 ist 1,2 1s...

Ich wusste zum ersten Mal in diesem Video, dass es so viele Zeilen gibt, und fand das interessant Ich habe ein Programm in Python geschrieben, das diese Zahlenfolge generiert.

def lookAndSay(initialValues, maxIteration=None):
    x = initialValues
    yield x

    iteration = 1

    while True:
        if maxIteration is not None and iteration >= maxIteration:
            break

        new_x = []
        prev = x[0]
        count = 1

        for n in x[1:]:
            if n == prev:
                count += 1
            else:
                new_x.append(count)
                new_x.append(prev)
                prev = n
                count = 1
        new_x.append(count)
        new_x.append(prev)

        x = new_x
        yield x
        
        iteration += 1

Wenn Sie wie folgt vorgehen, wird eine Look-and-Say-Sequenz mit dem ersten Term 1 bis zum 10. Term generiert und ausgegeben.

>>> for li in lookAndSay([1], 10):
...     print(li)
...
[1]
[1, 1]
[2, 1]
[1, 2, 1, 1]
[1, 1, 1, 2, 2, 1]
[3, 1, 2, 2, 1, 1]
[1, 3, 1, 1, 2, 2, 2, 1]
[1, 1, 1, 3, 2, 1, 3, 2, 1, 1]
[3, 1, 1, 3, 1, 2, 1, 1, 1, 3, 1, 2, 2, 1]
[1, 3, 2, 1, 1, 3, 1, 1, 1, 2, 3, 1, 1, 3, 1, 1, 2, 2, 1, 1]

Lassen Sie uns in den Kommentaren wissen, ob es einen besseren Weg gibt!

Recommended Posts

Generieren Sie die Look-and-Say-Sequenz in QuizKnock in Python
Generieren Sie in Python ein abgerundetes Miniaturbild
Finde Fehler in Python
Generieren Sie eine U-Verteilung in Python
Generieren Sie QR-Code in Python
Generieren Sie 8 * 8 (64) Cubes mit Blender Python
Abrufen der arXiv-API in Python
[Python] Generiert QR-Code im Speicher
Python im Browser: Brythons Empfehlung
Speichern Sie die Binärdatei in Python
Klicken Sie in Python auf die Sesami-API
Holen Sie sich den Desktop-Pfad in Python
Generieren Sie das Jupyter-Notizbuch ".ipynb" in Python
Holen Sie sich den Skriptpfad in Python
Im Python-Befehl zeigt Python auf Python3.8
Implementieren Sie das Singleton-Muster in Python
Klicken Sie auf die Web-API in Python
Ich habe die Warteschlange in Python geschrieben
Berechnen Sie den Vormonat in Python
Untersuchen Sie die Klasse eines Objekts mit Python
Holen Sie sich den Desktop-Pfad in Python
Holen Sie sich den Hostnamen in Python
Greifen Sie mit Python auf die Twitter-API zu
Der erste Schritt von Python Matplotlib
Ich habe den Stack in Python geschrieben
Beherrsche das schwache Ref-Modul in Python
Generieren Sie eine erstklassige Sammlung in Python
Lernen Sie das Entwurfsmuster "Prototype" mit Python
Lernen Sie das Entwurfsmuster "Builder" mit Python
Laden Sie das Remote-Python-SDK mit IntelliJ
Versuchen Sie es mit der Wunderlist-API in Python
Überprüfen Sie das Verhalten des Zerstörers in Python
Generieren Sie eine AWS-S3-signierte (zeitlich begrenzte) URL in Python
Lernen Sie das Designmuster "Flyweight" in Python
Versuchen Sie, die Kraken-API mit Python zu verwenden
Lernen Sie das Entwurfsmuster "Observer" in Python
Lernen Sie das Entwurfsmuster "Memento" mit Python
Lernen Sie das Entwurfsmuster "Proxy" in Python
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Lernen Sie das Entwurfsmuster "Befehl" in Python
Nehmen Sie die logische Summe von List in Python (Zip-Funktion)
Zeigen Sie Python 3 im Browser mit MAMP an
Tweet mit der Twitter-API in Python
Lernen Sie das Entwurfsmuster "Besucher" mit Python
Lernen Sie das Entwurfsmuster "Bridge" mit Python
Überprüfen Sie, ob die URL in Python vorhanden ist
Lernen Sie das Entwurfsmuster "Mediator" mit Python
Python Docstring-Kommentar automatisch mit Emacs generieren
Ordnen Sie die in pythons models.py festgelegte Tabelle zu
Lernen Sie das Designmuster "Decorator" mit Python
Führen Sie den Python-Interpreter im Skript aus
Das Ergebnis der Installation von Python auf Anaconda
Was ist "Mahjong" in der Python-Bibliothek? ??
Lesen Sie die Datei Zeile für Zeile mit Python
Lesen Sie die Datei Zeile für Zeile mit Python
Modul zum Generieren des Wortes N-Gramm in Python
MongoDB mit Python zum ersten Mal
Lernen Sie das Entwurfsmuster "Iterator" mit Python
Grundlagen zum Ausführen von NoxPlayer in Python
Lernen Sie das Entwurfsmuster "Strategie" mit Python