data = """13 5D KC 3C 3D 10C 7D 4C AH 10S JH 6C 10D 7S 2H JS QH 2C 7C KD 8C QD QS KH 2S 3H 4S 5H JD 3S 4H 5S 6H 8H 6S 7H QC 9C 8S 9H 6D 2D 8D AS 5C JC AH 4D KS AH 9S 10H 9D""" # Erste Zeile der Daten auswerten zeilen, data = data.split("\n",1) # Daten in Zeilen zerlegen datenzeilen = data.split("\n") # Karten aufbauen ranks = ["2","3","4","5","6","7","8","9","10","J","Q","K","A"] suits = ["S","H","D","C"] kartenset = {} # Das ist ein normales Kartenspiel kartenkeys = [] # Darueber wird die Ausgabe gesteuert for suit in suits: for rank in ranks: karte = rank + suit kartenset[karte] = 0 kartenkeys.append(karte) # Die Daten auswerten for zeile in range(int(zeilen)): kartenzeile = datenzeilen[zeile].strip(" ").split(" ") # print(kartenzeile) for karte in kartenzeile: kartenset[karte] += 1 # Ausgabe print("Missing cards: ") for karte in kartenkeys: if kartenset[karte] == 0: print(karte,end=" ") print("\n") print("Extra cards: ") for karte in kartenkeys: if kartenset[karte] > 1: print("{} ({})".format(karte,kartenset[karte]-1),end=" ") # - 1 print()Die erwartete Ausgabe stimmt. Es ist zu beachten, dass bei den zusätzlichen Karten die Anzahl der Karten im Deck um 1 verringert wird, weil ja eine Karte im Deck enthalten sein soll.
Donnerstag, 7. Februar 2013
Card Counting
„Card Counting“ für 7 Punkte als Teil von HP Codewars 2012. Das Lösungsskript - weder funktional noch objektorientiert lautet:
Abonnieren
Kommentare zum Post (Atom)
Keine Kommentare:
Kommentar veröffentlichen