single
Haaste: Puhelinnumeron muotoilu
Pyyhkäise näyttääksesi valikon
Muista, että rekursiivinen funktio ratkaisee ongelman kutsumalla itseään yksinkertaisemmalla syötteellä, kunnes saavutetaan perusehto, joka pysäyttää rekursion:
1234def list_sum(numbers): if not numbers: # Base case return 0 return numbers[0] + list_sum(numbers[1:]) # Recursive case
Huomaa, että jokainen rekursiivinen kutsu käsittelee pienempää versiota syötteestä — tässä tapauksessa listaa ilman ensimmäistä alkiota. Sama lähestymistapa toimii myös merkkijonojen käsittelyssä merkki kerrallaan.
Pyyhkäise aloittaaksesi koodauksen
Annetaan merkkijono, joka edustaa puhelinnumeroa ja voi sisältää välilyöntejä, viivoja, sulkuja tai muita ei-numeerisia merkkejä. Tavoitteena on poimia vain numerot rekursion avulla.
- Jos syötemerkkijono
numberon tyhjä, palauta tyhjä merkkijono; - Tarkista, onko merkkijonon
numberensimmäinen merkki numero käyttämälläisdigit()-metodia; - Jos se on numero, yhdistä se rekursiivisen kutsun tulokseen, jossa parametrina on toisesta merkistä alkaen muodostettu aliketju;
- Jos se ei ole numero, tee rekursiivinen kutsu ohittaen ensimmäinen merkki.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme