LeetCode——字符串String(1) 大小写转换

LeetCode——字符串String(1) 大小写转换
最新回答
断言断梦断思念

2026-10-25 00:26:23

答案:将字符串中的大写字母转换为小写字母,可通过Python内置方法lower()或ASCII码操作实现。以下是两种方法的详细解析:

方法1:使用内置函数 lower()
  • 原理:Python的字符串方法lower()会自动将所有大写字母转换为小写,非字母字符保持不变。
  • 代码:def toLowerCase(self, s: str) -> str: return s.lower()
  • 优点:简洁高效,直接利用语言特性,无需手动处理字符。
  • 时间复杂度:O(n),需遍历整个字符串。
方法2:ASCII码转换
  • 原理:大写字母(A-Z)的ASCII码范围是65-90,对应小写字母(a-z)的ASCII码范围是97-122,两者相差32。通过判断字符是否在65-90范围内,手动转换并拼接结果。
  • 代码:def toLowerCase(self, s: str) -> str: return ''.join([chr(ord(char) + 32) if 65 <= ord(char) <= 90 else char for char in s])

    步骤:

    遍历字符串中的每个字符char。

    若char是大写字母(ASCII码65-90),则将其ASCII码加32转换为小写。

    使用列表推导式生成新字符列表,最后通过join()拼接为字符串。

  • 优点:无需依赖内置函数,适合理解底层逻辑。
  • 缺点:代码稍复杂,且需处理非字母字符的保留逻辑。
对比与选择
  • 推荐方法1:直接使用lower(),代码简洁且可读性高,适合实际开发。
  • 方法2的适用场景:需手动控制转换逻辑时(如面试中要求不使用内置函数)。
示例验证
  • 输入:"Hello"

    方法1输出:"hello"

    方法2输出:"hello"

  • 输入:"LOVELY"

    两种方法均输出:"lovely"

总结

根据需求选择合适方法,优先使用内置函数以提升效率。若需深入理解字符编码操作,ASCII码转换是良好的练习。