Utfordring: Formatering av et Telefonnummer
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.
Takk for tilbakemeldingene dine!
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.
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
Takk for tilbakemeldingene dine!
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