Sektion 5. Kapitel 2
single
Challenge: Formatering af et Telefonnummer
Stryg for at vise menuen
Husk, at en rekursiv funktion løser et problem ved at kalde sig selv med et simplere input, indtil den når basis-tilfældet, der stopper rekursionen:
1234def list_sum(numbers): if not numbers: # Base case return 0 return numbers[0] + list_sum(numbers[1:]) # Recursive case
Bemærk, hvordan hvert rekursivt kald arbejder på en mindre version af inputtet — i dette tilfælde listen uden det første element. Den samme tilgang gælder, når man behandler strenge tegn for tegn.
Opgave
Swipe to start coding
Givet en streng, der repræsenterer et telefonnummer, som kan indeholde mellemrum, bindestreger, parenteser eller andre ikke-numeriske tegn. Målet er at udtrække kun cifrene ved hjælp af rekursion.
- Hvis inputstrengen
numberer tom, returneres en tom streng; - Kontroller om første tegn i strengen
numberer et ciffer ved hjælp af metodenisdigit(); - Hvis det er et ciffer, sammenkæd det med resultatet af et rekursivt kald, hvor delstrengen starter fra andet tegn;
- Hvis det ikke er et ciffer, udfør et rekursivt kald, hvor første tegn springes over.
Løsning
Var alt klart?
Tak for dine kommentarer!
Sektion 5. Kapitel 2
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat