返回

LeetCode 709: 逐字转小写,小试牛刀显身手

IOS

前言

在浩瀚的编程世界中,字符串操作扮演着至关重要的角色。从文本处理到数据分析,字符串的转换与修改无处不在。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++ 三种语言的代码示例,我们掌握了逐字转小写这一基本技巧,并将其应用到具体问题中。下次遇到类似问题时,不妨运用本文中的方法,轻松应对,在算法的海洋中乘风破浪!