今天看到一個面試題,說實現一串字符串的倒序。如:“abcde" --> "edcba"
- 使用python的特性
s = "abcde" def str_reverse1(s): return s[::-1] if __name__ == '__main__': rs = str_reverse1(s) print(rs)
- 使用列表
s = "abcde" def str_reverse2(s): # l = list(s).reverse() #錯誤 l = list(s) l.reverse() return "".join(l) if __name__ == '__main__': rs = str_reverse2(s) print(rs)
- 使用循環
s = "abcde" def str_reverse3(s): s1 = "" for s2 in s[::-1]: s1 += s2 return s1 if __name__ == '__main__': rs = str_reverse3(s) print(rs)
- 使用庫collections
from collections import deque s = "abcde" def str_reverse4(s): dq = deque(s) # or dq = deque() dq.reverse() # dq.extendleft(s) return "".join(dq) if __name__ == '__main__': rs = str_reverse4(s) print(rs)
- 使用遞歸
s = "abcde" def str_reverse5(s): if len(s) <= 1: return s return str_reverse5(s[1:])+s[0] if __name__ == '__main__': rs = str_reverse5(s) print(rs)