Seksjon 5. Kapittel 2
single
Utfordring: Formatering av et Telefonnummer
Sveip for å vise menyen
Husk at en rekursiv funksjon løser et problem ved å kalle seg selv med et enklere input, helt til den når grunntilfellet som stopper rekursjonen:
1234def list_sum(numbers): if not numbers: # Base case return 0 return numbers[0] + list_sum(numbers[1:]) # Recursive case
Legg merke til hvordan hvert rekursive kall arbeider på en mindre versjon av input — i dette tilfellet listen uten det første elementet. Den samme tilnærmingen gjelder når man behandler strenger tegn for tegn.
Oppgave
Sveip for å begynne å kode
Gitt en streng som representerer et telefonnummer, som kan inneholde mellomrom, bindestreker, parenteser eller andre ikke-numeriske tegn. Målet er å ekstrahere kun sifrene ved hjelp av rekursjon.
- Hvis inputstrengen
numberer tom, returner en tom streng; - Sjekk om det første tegnet i strengen
numberer et siffer ved å bruke metodenisdigit(); - Hvis det er et siffer, konkatenér det med resultatet av et rekursivt kall hvor du sender inn delstrengen som starter fra andre tegn;
- Hvis det ikke er et siffer, gjør et rekursivt kall hvor du hopper over første tegn.
Løsning
Alt var klart?
Takk for tilbakemeldingene dine!
Seksjon 5. Kapittel 2
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår