Teil 1 Ich habe die Antwort auf das Referenzproblem geschrieben, wie man in Python in Echtzeit offline schreibt

http://qiita.com/Nabetani/items/cbc3af152ee3f50a822f

import re
import itertools

SPEC = {
  "suit": ["S","H","D","C"],
  "rank": ["2","3","4","5","6","7","8","9","10","J","Q","K","A"],
  "hand": (
    ("4K", lambda x: max(snds(uniq_cnt(snds(x)))) == 4),
    ("FH", lambda x: sorted(snds(uniq_cnt(snds(x)))) == sorted((2,3))),
    ("3K", lambda x: max(snds(uniq_cnt(snds(x)))) == 3),
    ("2P", lambda x: sorted(snds(uniq_cnt(snds(x)))) == sorted((2,2,1))),
    ("1P", lambda x: sorted(snds(uniq_cnt(snds(x)))) == sorted((2,1,1,1))),
    ("--", lambda x: True),
  )
}

def snds(l):
    return [v for (k,v) in l]

def uniq_cnt(l):
    return [(x[0],len(list(x[1]))) for x in itertools.groupby(sorted(l))]

def parser(suit,rank,**kwargs):
    return re.compile("([{suits}]+)([{ranks}]+)".format(suits=''.join(suit),ranks=''.join(rank)))

def main(arg):
    ls = parser(**arg['spec']).findall(arg['input'])
    print list( (k for (k,f) in arg['spec']['hand'] if f(ls)) )[0]

if __name__ == "__main__":
    import sys
    arg={
      "spec": SPEC,
      "input": sys.argv[1],
    }
    main(arg)

Recommended Posts

Teil 1 Ich habe die Antwort auf das Referenzproblem geschrieben, wie man in Python in Echtzeit offline schreibt
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
17. In Python implementiertes Referenzproblem für das Offline-Schreiben in Echtzeit
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
So schreiben Sie offline in Echtzeit Lösen von E04-Problemen mit Python
Wie man offline in Echtzeit schreibt Ich habe versucht, E11 mit Python zu lösen
Das 16. Offline-Echtzeit-Schreiben eines Referenzproblems zur Lösung mit Python
Das 19. Offline-Echtzeit-Schreiben eines Referenzproblems zur Lösung mit Python
Wie man offline in Echtzeit schreibt Ich habe versucht, E12 mit Python zu lösen
Offline-Echtzeit zum Schreiben eines Python-Implementierungsbeispiels für das E15-Problem
So schreiben Sie offline in Echtzeit Lösen von F01-Problemen mit Python
Antwort auf "Offline in Echtzeit, wie man ein F02-Problem schreibt"
Antwort auf "Offline-Echtzeit, wie man ein F01-Problem schreibt"
Das 15. Offline-Problem beim Schreiben in Echtzeit wurde mit Python gelöst
Antwort auf "Offline-Echtzeit, wie man ein E13-Problem schreibt"
Ein Beispiel für die Antwort auf die Referenzfrage der Studiensitzung. Mit Python.
20. Offline-Echtzeit So schreiben Sie Probleme in Python
So ermitteln Sie die Anzahl der Stellen in Python
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Offline-Echtzeit zum Schreiben eines E14 Python-Implementierungsbeispiels
Ich habe die Warteschlange in Python geschrieben
Ich habe den Stack in Python geschrieben
[Frage] So erhalten Sie die Daten von Textbereichsdaten in Echtzeit mithilfe der Python-Webframework-Flasche
Ich schrieb einen Test in "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren".
Ich habe versucht, den Datenverkehr mit WebSocket in Echtzeit zu beschreiben
Ich habe die Berechnungszeit des in Python geschriebenen gleitenden Durchschnitts verglichen
Wie Sie die interne Struktur eines Objekts in Python kennen
17. Offline-Echtzeit So lösen Sie Schreibprobleme mit Python
So überprüfen Sie die Speichergröße einer Variablen in Python
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
Wie schreibe ich Ruby to_s in Python
So schneiden Sie den unteren rechten Teil des Bildes mit Python OpenCV
So schreiben Sie den richtigen Shebang in Perl-, Python- und Ruby-Skripten
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
Ich möchte das Ergebnis von "Zeichenfolge" .split () in Python stapelweise konvertieren
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Ich möchte einen Teil der Excel-Zeichenfolge mit Python einfärben
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Verwendung der C-Bibliothek in Python
Zusammenfassung zum Importieren von Dateien in Python 3
Das 18. Offline-Echtzeit-Schreibproblem in Python
So messen Sie die Ausführungszeit mit Python Teil 1
So erhalten Sie die Dateien im Ordner [Python]
Das 19. Offline-Echtzeit-Schreibproblem in Python
Ich möchte den Fortschritt in Python anzeigen!
So messen Sie die Ausführungszeit mit Python Part 2
So übergeben Sie das Ergebnis der Ausführung eines Shell-Befehls in einer Liste in Python
[Basic Information Engineer Examination] Ich habe den Algorithmus der euklidischen Methode der gegenseitigen Teilung in Python geschrieben.
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
So ermitteln Sie den Koeffizienten der ungefähren Kurve, die in Python durch die Scheitelpunkte verläuft
Ich möchte die Ergebnisse von% time, %% time usw. in einem Objekt (Variable) speichern.
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
(Tagebuch 1) Erstellen, Durchsuchen und Registrieren von Daten in der SQL-Datenbank des Microsoft Azure-Dienstes mit Python
Ich möchte in Python schreiben! (1) Überprüfung des Codeformats
So rufen Sie den n-ten größten Wert in Python ab
Ich habe versucht zusammenzufassen, wie man Matplotlib von Python verwendet
So schreiben Sie in Python die Verkettung von Zeichenfolgen in mehrere Zeilen