Sektion 5. Kapitel 2
single
Udfordring: 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 at bruge metodenisdigit(); - Hvis det er et ciffer, sammenkæd det med resultatet af et rekursivt kald, hvor der gives en delstreng startende fra andet tegn;
- Hvis det ikke er et ciffer, udfør et rekursivt kald og spring første tegn 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