Heim > Artikel > Backend-Entwicklung > Gute Schlüssel
Jede Woche verschickt Mohammad S. Anwar die Weekly Challenge, eine Chance für uns alle, Lösungen für zwei wöchentliche Aufgaben zu finden. Meine Lösungen werden zunächst in Python geschrieben und dann in Perl konvertiert. Es ist eine großartige Möglichkeit für uns alle, etwas Programmieren zu üben.
Herausforderung, meine Lösungen
Sie erhalten eine positive Ganzzahl, $int, mit 3 oder mehr Ziffern.
Schreiben Sie ein Skript, um die gute Ganzzahl in der angegebenen Ganzzahl oder -1 zurückzugeben, wenn keine gefunden wird. Eine gute Ganzzahl besteht aus genau drei aufeinanderfolgenden übereinstimmenden Ziffern.
Ich dachte ursprünglich, dass diese Aufgabe mit einem regulären Ausdrucksmuster erledigt werden könnte, aber anscheinend habe ich mich geirrt. Ich werde mir andere TPW-Mitglieder ansehen, um zu sehen, ob sie das auch so können.
Für diese Aufgabe habe ich eine Variable pos, die von 0 auf drei weniger als die Länge der Zeichenfolge iteriert. Ich überprüfe dann vier Dinge:
Wenn das alles wahr ist, gebe ich diese drei Ziffern zurück. Dies erfolgt in Python als String, da „000“ keine echte Ganzzahl ist. Wenn der Iterator erschöpft ist, gebe ich -1 zurück.
def good_integer(n: int) -> str: value = str(n) length = len(value) for pos in range(length-2): if ( value[pos] == value[pos+1] and value[pos] == value[pos+2] and (pos == 0 or value[pos] != value[pos-1]) and (pos + 3 == length or value[pos] != value[pos+3]) ): return value[pos:pos+3] return '-1'
$ ./ch-1.py 12344456 444 $ ./ch-1.py 1233334 -1 $ ./ch-1.py 10020003 000
Sie erhalten eine alphabetische Zeichenfolge, $str, wie vom Benutzer eingegeben.
Schreiben Sie ein Skript, um herauszufinden, wie oft der Benutzer die Taste ändern musste, um die angegebene Zeichenfolge einzugeben. Beim Ändern des Schlüssels handelt es sich um die Verwendung eines Schlüssels, der sich vom zuletzt verwendeten Schlüssel unterscheidet. Die Tasten „Shift“ und „Caps Lock“ werden nicht gezählt.
Lustige Tatsache. Wenn ich mir eine neue Tastatur kaufe (alle paar Jahre), merke ich, wie lange es dauert, bis ich die Feststelltaste herausreiße. Die meisten Tastaturen halten keinen Tag!
Für diese Aufgabe wandle ich die Zeichenfolge in Kleinbuchstaben um und beginne mit zwei Variablen. Der Wert „current_key“ ist die aktuell gedrückte Taste und wird mit dem ersten Buchstaben unserer Eingabe initialisiert. Die Variable changes gibt die Anzahl der Schlüsseländerungen an, die ich vornehme, und beginnt mit 0.
Ich durchlaufe dann jeden Buchstaben in der Eingabezeichenfolge. Wenn sich dieser Buchstabe vom aktuellen_Schlüssel unterscheidet, aktualisiere ich ihn mit dem neuen Buchstaben und erhöhe die Änderungen um 1.
def key_changes(s: str) -> int: s = s.lower() current_key = s[0] changes = 0 for letter in s: if letter != current_key: current_key = letter changes += 1 return changes
$ ./ch-2.py pPeERrLl 3 $ ./ch-2.py rRr 0 $ ./ch-2.py GoO 1
Das obige ist der detaillierte Inhalt vonGute Schlüssel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!