返回
LeetCode 709: 逐字转小写,小试牛刀显身手
IOS
2024-01-27 22:00:12
前言
在浩瀚的编程世界中,字符串操作扮演着至关重要的角色。从文本处理到数据分析,字符串的转换与修改无处不在。LeetCode 709 题正是考验我们对字符串操作的理解和运用能力。它要求我们编写一个函数,将给定字符串中的所有大写字母逐个转换成小写字母。
逐字转小写
要将大写字母转换成小写字母,我们可以利用字符串的内置方法。在 Python 中,可以使用 lower()
方法,而在 Java 和 C++ 中,则分别可以使用 toLowerCase()
和 tolower()
方法。这些方法可以将字符串中的所有大写字母转换成小写字母,而不会影响其他字符。
def to_lowercase(s):
"""
将字符串中的大写字母转换成小写字母。
Args:
s (str): 输入字符串。
Returns:
str: 转换后的小写字母字符串。
"""
return s.lower()
public String toLowerCase(String s) {
return s.toLowerCase();
}
string toLowerCase(string s) {
for (int i = 0; i < s.size(); i++) {
if (s[i] >= 'A' && s[i] <= 'Z') {
s[i] += 32;
}
}
return s;
}
代码实现
有了逐字转小写的基本思路,我们就可以编写完整的代码来解决 LeetCode 709 题了。下面是 Python、Java 和 C++ 三种语言的具体实现:
Python
def toLowerCase(s):
"""
将字符串中的大写字母转换成小写字母。
Args:
s (str): 输入字符串。
Returns:
str: 转换后的小写字母字符串。
"""
new_str = ""
for ch in s:
if ch.isupper():
new_str += ch.lower()
else:
new_str += ch
return new_str
Java
public String toLowerCase(String s) {
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (Character.isUpperCase(chars[i])) {
chars[i] = Character.toLowerCase(chars[i]);
}
}
return new String(chars);
}
C++
string toLowerCase(string s) {
for (int i = 0; i < s.size(); i++) {
if (s[i] >= 'A' && s[i] <= 'Z') {
s[i] += 32;
}
}
return s;
}
复杂度分析
上述三种语言的代码实现都具有相同的复杂度:
- 时间复杂度: O(n),其中 n 是字符串 s 的长度。
- 空间复杂度: O(n),因为我们需要创建一个新字符串来存储转换后的结果。
总结
LeetCode 709 题看似简单,但它巧妙地考察了我们对字符串操作的理解和运用能力。通过 Python、Java 和 C++ 三种语言的代码示例,我们掌握了逐字转小写这一基本技巧,并将其应用到具体问题中。下次遇到类似问题时,不妨运用本文中的方法,轻松应对,在算法的海洋中乘风破浪!