Heim > Backend-Entwicklung > Python-Tutorial > Lösen Sie die wöchentliche Herausforderungsaufgabe Schritt für Schritt in Python

Lösen Sie die wöchentliche Herausforderungsaufgabe Schritt für Schritt in Python

Linda Hamilton
Freigeben: 2025-01-04 12:29:35
Original
841 Leute haben es durchsucht

Solving the Weekly Challenge  Task Step by Step in Python

1. Einführung

Die Weekly Challenge, organisiert von Mohammad S. Anwar, ist ein freundlicher Wettbewerb, bei dem Entwickler gegeneinander antreten, indem sie zwei Aufgaben lösen. Es fördert die Teilnahme von Entwicklern aller Sprachen und Niveaus durch Lernen, Teilen und Spaß haben.

Aufgabe 2: Schritt für Schritt aus der Weekly Challenge erfordert von den Entwicklern, einen Startwert zu finden, der eine Schritt-für-Schritt-Summe niemals kleiner als eins macht.

In diesem Beitrag diskutiere und präsentiere ich meine Python-Sprachlösung für Aufgabe 2: Schritt für Schritt und schließe sie mit einer kurzen Schlussfolgerung ab.

2. Aufgabe 2: Schritt für Schritt

Sie erhalten ein Array von Ganzzahlen, @ints.

Schreiben Sie ein Skript, um den minimalen positiven Startwert zu ermitteln, sodass die Schritt-für-Schritt-Summe nie kleiner als eins ist.

Die wöchentliche Herausforderung 302, Aufgabe 2: Schritt für Schritt

Beispiele 1–3 zeigen die erwarteten Ergebnisse aus gegebenen Eingaben.

Beispiel 1

Input: @ints = (-3, 2, -3, 4, 2)
Output: 5
Nach dem Login kopieren

Für Startwert 5.

5 + (-3) = 2
2 + (+2) = 4
4 + (-3) = 1
1 + (+4) = 5
5 + (+2) = 7
Nach dem Login kopieren

Beispiel 2

Input: @ints = (1, 2)
Output: 1
Nach dem Login kopieren

Beispiel 3

Input: @ints = (1, -2, -3)
Output: 5
Nach dem Login kopieren

3. Meine Lösung zu Aufgabe 2

def return_min_start(ints: list[int]) -> int | None:
    for start_value in range(1, 1000000):
        step_sum = start_value + ints[0]
        if step_sum < 1:
            continue
        for index in range(1, len(ints)):
            step_sum += ints[index]
            if step_sum < 1:
                break
        if step_sum >= 1:
            return start_value
    return None
Nach dem Login kopieren

Meine Lösung verwendet for-Schleifen und if-Anweisungen, um inkrementell nach dem Startwert zu suchen, der den Aufgabenanforderungen entspricht:

  • Ich suche schrittweise nach Startwerten im Bereich von [1, 1000000]. Für jeden Startwert:
    • Ich berechne Schritt für Schritt die Summe (step_sum) von start_value und ints[0]. Wenn die Schrittsumme kleiner als eins ist, beginne ich mit dem nächstmöglichen Startwert von vorne.
    • Ich berechne die Schrittsumme für die verbleibenden Elemente von Ints. Wenn die Schrittsumme für ein Element kleiner als eins ist, beginne ich von vorne mit dem nächstmöglichen Startwert.
    • Wenn die letzte Schrittsumme für Startwert größer als eins ist, gebe ich Startwert zurück.
  • Wenn ich keinen Startwert im Bereich von [1, 1000000] finde, gebe ich None zurück.

4. Fazit

In diesem Beitrag habe ich Aufgabe 2: Schritt für Schritt besprochen und meine Lösung vorgestellt.

Erfahren Sie mehr über die neuesten und vergangenen Herausforderungen auf der Website der Weekly Challenge:
https://theweeklychallenge.org/

Erfahren Sie mehr über die Teilnahme in den FAQ zur Weekly Challenge:
https://theweeklychallenge.org/faq/

Das obige ist der detaillierte Inhalt vonLösen Sie die wöchentliche Herausforderungsaufgabe Schritt für Schritt in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage