递归简洁明了
Topic source朋友这是我写的,但是有点问题,我没用递归,运行的时候其他没问题,就是遇到一连串空格那种会出现这个错误string index out of range,为什么用递归就不会这样呢?
def trim(s):
if s == '':
return s
while s[0] == ' ':
if s != ' ':
s = s[1:]
elif s == ' ':
s = ''
while s[-1] == ' ':
s = s[:-1]
return s
s变成''后你再调用s[0]就越界了 循环判断条件改为是否为空,然后在循环内检测到非空格字符直接bread就好了
def trim(s):
if s == '':
return s
while s != '':
if s[0] == ' ':
s = s[1:]
elif s != ' ':
break
while s != '':
if s[-1] == ' ':
s = s[:-1]
elif s != ' ':
break
return s
i = 0for sub in s: if sub != ' ': s = s[i:] j = 0 while s[len(s)-j-1:len(s)-j] == ' ': j += 1 return s[:len(s) - j] i += 1return ''
- 1
Zack_Chang
if s == '':
return s
elif s[0] == ' ':
return trim(s[1:])
elif s[-1] == ' ':
return trim(s[:-1])
else:
return s