Das 15. Offline-Problem beim Schreiben in Echtzeit wurde mit Python gelöst

Klicken Sie hier, um Details zum Problem anzuzeigen. http://qiita.com/Nabetani/items/cba03c96d1ea55f6e861

Nachdem ich einige Probleme in der Vergangenheit im Voraus ausprobiert hatte, dachte ich sofort, dass es gut wäre, ein Wörterbuch zu erstellen und das Schwarz (beleuchtet) des Punktmusters des Blitzzeichens auf 1 und das Weiß (aus) auf 0 zu setzen und die obere und untere Reihe zu setzen. Ich habe ein Wörterbuch mit den Tasten und den Zeichen als Werten erstellt. Konvertiert die eingegebene hexadezimale Zeichenfolge in eine 32-stellige binäre Zeichenfolge, extrahiert mehrere Zeichen vom Anfang der oberen und unteren Zeile und schlägt das Wörterbuch nach. Ich musste jedoch auf die Anzahl der zu extrahierenden Zeichen achten. Wenn es ein 'U'dot-Muster mit 3 Punkten oben und unten gibt, wenn Sie 2 Punkte oben und unten herausnehmen und das Wörterbuch nachschlagen, stimmt es mit dem Punktmuster von' L 'überein. Überprüfen Sie also zuerst, ob es sich um ein 3-Punkt-Muster handelt, und prüfen Sie dann, ob es sich um ein 2-Punkt-Muster handelt. Wenn es schließlich keines trifft, prüfen Sie, ob es sich um ein 1-Punkt-Trennmuster handelt (00).

parts = {'1011':'L', '1110':'R', '0111':'J', '111010':'T', '101111':'U',
         '111101':'N', '011110':'S', '110011':'Z', '00':'' }

def solve(text):
    upper, lower = (format(int(t,16),'032b') for t in text.split('/'))
    answer = ''
    while len(upper) > 0:
        for n in xrange(3, 0, -1):
            part = upper[:n] + lower[:n]
            if part in parts:
                answer += parts[part]
                upper, lower = upper[n:], lower[n:]
                break
    return answer

def test(text, answer):
    result = solve(text)
    print '%s\t%s\t%s' % ('OK' if result == answer else 'NG', text, result)

if __name__ == '__main__':
    0, test( "2ed8aeed/34b0ea5b", "LTRSUNTSJ" );
    1, test( "00000200/00000300", "L" );
    2, test( "00018000/00010000", "R" );
    3, test( "00002000/00006000", "J" );
    4, test( "00000700/00000200", "T" );
    5, test( "01400000/01c00000", "U" );
    6, test( "00003800/00002800", "N" );
    7, test( "000c0000/00180000", "S" );
    8, test( "00003000/00001800", "Z" );
    9, test( "132eae6c/1a64eac6", "LRJTUNSZ" );
    10, test( "637572d0/36572698", "ZSNUTJRL" );
    11, test( "baddb607/d66b6c05", "LTJZTSSSN" );
    12, test( "db74cd75/6dac6b57", "ZZZTJZRJNU" );
    13, test( "3606c2e8/1b0d8358", "ZZSSLTJ" );
    14, test( "ad98c306/e6cc6183", "UZZZZZZ" );
    15, test( "4a4aaee3/db6eeaa6", "JJLLUUNNS" );
    16, test( "ecd9bbb6/598cd124", "TSSZZTTRR" );
    17, test( "e0000002/40000003", "TL" );
    18, test( "a0000007/e0000005", "UN" );
    19, test( "c0000003/80000006", "RS" );
    20, test( "40000006/c0000003", "JZ" );
    21, test( "01da94db/00b3b6b2", "TSUJLRSR" );
    22, test( "76eeaaea/24aaeeae", "TRNNUUNU" );
    23, test( "1dacaeee/1566e444", "NRJZUTTT" );
    24, test( "26c9ac60/6c6d66c0", "JSZLRJZS" );
    25, test( "6c977620/36da5360", "ZZLLTNZJ" );
    26, test( "069aeae6/0db34eac", "SJSLTUNS" );
    27, test( "06d53724/049da56c", "RRULRNJJ" );
    28, test( "069b58b0/04d66da0", "RLRSLZJR" );
    29, test( "1b6eced4/11b46a9c", "RZZTZNRU" );
    30, test( "522e8b80/db6ad900", "JLLJNLJT" );
    31, test( "6546cdd0/376c6898", "ZULSZRTL" );
    32, test( "4e6d5b70/6ad9d620", "LNSSURST" );
    33, test( "37367772/65635256", "SNSZNTNJ" );
    34, test( "25535d58/377669cc", "LUUSLTUZ" );
    35, test( "0ae6a55d/0eacedcb", "UNSUJUTJ" );
    36, test( "76762edc/23536a88", "TZNZJNRT" );

Recommended Posts

Das 16. Offline-Echtzeit-Schreibproblem wurde mit Python gelöst
Das 15. Offline-Problem beim Schreiben in Echtzeit wurde mit Python gelöst
Das 16. Offline-Echtzeit-Schreiben eines Referenzproblems zur Lösung mit Python
Das 19. Offline-Echtzeit-Schreiben eines Referenzproblems zur Lösung mit Python
Das 15. Offline-Echtzeit-Schreiben eines Referenzproblems in Python
Das 14. Referenzproblem beim Schreiben in Echtzeit in Python
Das 18. Offline-Echtzeit-Schreiben eines Referenzproblems in Python
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
17. In Python implementiertes Referenzproblem für das Offline-Schreiben in Echtzeit
20. Offline-Echtzeit So schreiben Sie Probleme in Python
Das 14. Referenzproblem beim Offline-Schreiben in Echtzeit mit Python
So schreiben Sie offline in Echtzeit Lösen von E05-Problemen mit Python
17. Offline-Echtzeit So lösen Sie Schreibprobleme mit Python
Offline-Echtzeit zum Schreiben eines Python-Implementierungsbeispiels für das E15-Problem
Antwort auf "Offline in Echtzeit, wie man ein F02-Problem schreibt"
Das 18. Offline-Echtzeit-Schreibproblem in Python
Antwort auf "Offline-Echtzeit, wie man ein F01-Problem schreibt"
Antwort auf "Offline-Echtzeit, wie man ein E13-Problem schreibt"
Das 19. Offline-Echtzeit-Schreibproblem in Python
Ich habe versucht, das Problem von F02 zu lösen, wie man mit Python offline in Echtzeit schreibt
Offline-Echtzeit zum Schreiben eines E14 Python-Implementierungsbeispiels
13. Offline-Echtzeit So lösen Sie Schreibprobleme mit Python
Offline in Echtzeit, wie man ein Implementierungsbeispiel für E11 Ruby und Python schreibt
Das 10. Referenzproblem beim Schreiben in Echtzeit. Implementierungsbeispiel von Python.
Das 11. Referenzproblem beim Schreiben in Echtzeit. Implementierungsbeispiel von Python.
So schreiben Sie offline in Echtzeit Lösen von F01-Problemen mit Python
Wie man offline in Echtzeit schreibt Ich habe versucht, E11 mit Python zu lösen
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion
Teil 1 Ich habe die Antwort auf das Referenzproblem geschrieben, wie man in Python in Echtzeit offline schreibt
Wie man offline in Echtzeit schreibt Ich habe versucht, E12 mit Python zu lösen
[Einführung in Python] Wie iteriere ich mit der Bereichsfunktion?
Versuchen Sie, das Problem der Zuweisung von Schulungsärzten mit Python zu lösen
[Python] So legen Sie den Download-Speicherort mit youtube-dl fest
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
[Python] So schreiben Sie den Tabellenstil mit python-pptx um [python-pptx]
Schreiben Sie mit Python in csv
Teil 1 Ich habe ein Beispiel für die Antwort auf das Referenzproblem geschrieben, wie man in Python in Echtzeit offline schreibt
Eine Geschichte über den Umgang mit dem CORS-Problem
So gelangen Sie mit Vagrant in die Python-Entwicklungsumgebung
[Einführung in Python] So erhalten Sie Daten mit der Funktion listdir
Das zwölfte Offline-Echtzeit-Schreibreferenzproblem. Implementiert von Python
Python: So verwenden Sie Async mit
[Python] Mit Python in eine CSV-Datei schreiben
So erhalten Sie die Python-Version
Erste Schritte mit Python
So berechnen Sie das Datum mit Python
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
So schreiben Sie offline in Echtzeit Lösen von E04-Problemen mit Python
[Python] Erklärt anhand eines Beispiels, wie die Formatierungsfunktion verwendet wird
Ich wollte das ABC164 A ~ D-Problem mit Python lösen
So senden Sie eine Anfrage mit Python an die DMM (FANZA) -API
So gehen Sie mit dem Problem um, dass das aktuelle Verzeichnis verschoben wird, wenn Python von Atom ausgeführt wird
Antwort auf "Offline in Echtzeit, wie man ein F04-Problem schreibt"
So lösen Sie das Problem beim Verpacken des Behälters
So schreiben Sie Python-Dokumentkommentare (Docstrings)
So arbeiten Sie mit BigQuery in Python
Wie man einen Taschentest mit Python macht