>>> s = "python" >>> s[::-1] 'nohtyp' >>>
>>> s = "python" >>> lst = list(s) >>> lst.reverse() >>> "".join(lst) 'nohtyp' >>>
>>> def reverseString(s:str) -> str: lst = list(s) i, j = 0, len(s)-1 while i < j: lst[i], lst[j] = lst[j], lst[i] i , j = i + 1, j - 1 return "".join(lst) >>> s = 'python' >>> reverseString(s) 'nohtyp' >>>
>>> from functools import reduce # Python3 中不能夠直接調用reduce >>> s = "python" >>> reduce(lambda x, y: y+x, s) 'nohtyp' >>>
reduce 函數幫助:python
>>> help(reduce) Help on built-in function reduce in module _functools: reduce(...) reduce(function, sequence[, initial]) -> value Apply a function of two arguments cumulatively to the items of a sequence, from left to right, so as to reduce the sequence to a single value. For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5). If initial is present, it is placed before the items of the sequence in the calculation, and serves as a default when the sequence is empty. >>>
>>> def reverse(s): if s == "": return s else: return reverse(s[1:]) + s[0] >>> reverse('python') 'nohtyp' >>>
python中默認的最大遞歸數:函數
>>> import sys >>> sys.getrecursionlimit() 1000 >>>
>>> def rev(s): lst = list(s) # 轉換成list ret = "" while len(lst): ret += lst.pop() # 每次彈出最後的元素 return ret >>> s = 'python' >>> rev(s) 'nohtyp' >>>
>>> def rever(s): ret = "" for i in range(len(s)-1, 0, -1): ret += s[i] return ret >>> s = "python" >>> rev(s) 'nohtyp' >>>