Podając ciąg znaków, taki jak "helloyellowellow", przeanalizuj wszystkie poprawne łańcuchy z danego ciągu. (Np .: [[hell, hello, yellow], [low, low] ........]Parsowanie ciągów przy użyciu języka Python?
Poszukuję najbardziej zoptymalizowanego sposobu napisania kodu. Oto mój, ale nie jestem pewien, czy jest to najlepszy sposób
Pełne ujawnienie - to było pytanie wywiad
master = []
# Dictionary for us to look up words
def is_word(inputstr):
#returns True/False
def processstring(fstr,secstr,li):
if is_word(fstr):
li.append(fstr)
if len(secstr) == 0:
if len(li) != 0:
master.append(li)
return
processstring(fstr+secstr[0], secstr[1:len(secstr)],li)
def wrapperprocess(inpstr):
li = []
if len(inpstr) == 0:
return
processstring('',inpstr,li)
wrapperprocess(inpstr[1:len(inpstr)])
wrapperprocess('helloyellowellow')
print master
W swoim rozwiązaniu wygląda zapomniałeś ' return li'. Lepszym podejściem jest "uzyskanie" dopasowanych słów, zamiast utrzymywania listy, dołączania do niej i zwracania jej. – shx2