0709. 转换成小写字母 #
- 标签:字符串
- 难度:简单
题目大意 #
描述:给定一个字符串 s
。
要求:将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。
说明:
- $1 \le s.length \le 100$。
s
由 ASCII 字符集中的可打印字符组成。
示例:
- 示例 1:
|
|
- 示例 2:
|
|
解题思路 #
思路 1:直接模拟 #
- 大写字母
A
~Z
的 ASCII 码范围为[65, 90]
。 - 小写字母
a
~z
的 ASCII 码范围为[97, 122]
。
将大写字母的 ASCII 码加 32
,就得到了对应的小写字母,则解决步骤如下:
- 使用一个字符串变量
ans
存储最终答案字符串。 - 遍历字符串
s
,对于当前字符ch
:- 如果
ch
的 ASCII 码范围在[65, 90]
,则说明ch
为大写字母。将ch
的 ASCII 码增加32
,再转换为对应的字符,存入字符串ans
的末尾。 - 如果
ch
的 ASCII 码范围不在[65, 90]
,则说明ch
为小写字母。直接将ch
存入字符串ans
的末尾。
- 如果
- 遍历完字符串
s
,返回答案字符串ans
。
思路 1:代码 #
|
|
思路 1:复杂度分析 #
- 时间复杂度:$O(n)$。一重循环遍历的时间复杂度为 $O(n)$。
- 空间复杂度:$O(n)$。如果算上答案数组的空间占用,则空间复杂度为 $O(n)$。不算上则空间复杂度为 $O(1)$。
思路 2:使用 API #
Python
语言中自带大写字母转小写字母的 API:lower()
,用 API 转换完成之后,直接返回新的字符串。
思路 2:代码 #
|
|
思路 2:复杂度分析 #
- 时间复杂度:$O(n)$。一重循环遍历的时间复杂度为 $O(n)$。
- 空间复杂度:$O(n)$。如果算上答案数组的空间占用,则空间复杂度为 $O(n)$。不算上则空间复杂度为 $O(1)$。