Python面试题更新 2026-08-03

在 Python 编程中,采用什么索引方法可以把一个给定的字符串进行倒序排列?

考察说明

考查对 Python 字符串切片及索引特性的掌握程度。

回答思路

  1. 【回答框架 1】Python 中反转字符串最常用且简洁的方法是利用切片操作,语法为 s[::-1] ,通过设置步长为 -1 从末尾向开头遍历,直接生成反转后的新字符串,原字符串不变,因为字符串是不可变对象。
  2. 【回答框架 2】除切片外,也可以使用内置函数 reversed() 结合 join() : ''.join(reversed(s)) ,其中 reversed(s) 返回一个反向迭代器,再用空字符串连接成新字符串,这种方法更灵活,适合需要逐字符处理的场景。
  3. 【回答框架 3】使用索引手动实现时,可借助循环从 len(s)-1 向下到 0 依次取字符拼接,但效率低于切片和 reversed 方法;切片和 reversed 在底层有优化,时间复杂度一般为 O(n),空间复杂度为 O(n) 用于存放结果。
  4. 【回答框架 4】实际应用中,根据需求选择:若仅需反转结果,推荐切片;若需在反转过程中进行定制处理,可选择 reversed 迭代器。此外,在 LeetCode 等场景中,字符串反转是常见基础操作,掌握多种实现方式有助于应对变种问题,例如反转单词顺序等。
  5. 【回答框架 5】注意字符串是不可变序列,任何反转方法都会创建新字符串,不会原地修改;对于列表反转则可用 list.reverse() 或切片 l[::-1] 区分。
  6. 【关键点 1】切片 s[::-1] 是最简洁的字符串反转方式。
  7. 【关键点 2】reversed(s) 配合 join 可避免生成中间序列。
  8. 【关键点 3】反转字符串时间复杂度 O(n),空间复杂度 O(n)。
  9. 【关键点 4】字符串不可变,反转必然产生新对象。
  10. 【易错点 1】不要使用 s.reverse() 反转字符串,该方法仅适用于列表。
  11. 【易错点 2】切片反转时步长必须为 -1,若省略步长则只复制未反转。
  12. 【易错点 3】在循环中逐个字符拼接效率低,应优先使用切片或 join。