大厂面试手撕面试题:删除字符串中的指定字符(亲测可用的java实现)
要求:给定一个字符串 s
和一个字符 t
,要求删除字符串中所有出现的字符 t
,并返回处理后的新字符串。
Java代码实现:
public class Solution {
public static String removeCharacter(String s, char t) {
// 使用 StringBuilder 来构建结果字符串
StringBuilder result = new StringBuilder();
// 遍历原字符串,拼接不等于 t 的字符
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) != t) {
result.append(s.charAt(i));
}
}
// 返回结果字符串
return result.toString();
}
public static void main(String[] args) {
String s = "hello world";
char t = 'o';
String result = removeCharacter(s, t);
System.out.println(result); // 输出 "hell wrld"
}
}
代码解释:
- removeCharacter 方法:
- 输入:一个字符串
s
和一个字符t
。 - 使用
StringBuilder
来构建新的字符串,这样在处理大量字符时会更加高效。 - 遍历原字符串
s
,将不等于t
的字符添加到StringBuilder
中。 - 最终通过
toString()
返回结果。
- 输入:一个字符串
- main 方法:
- 示例:给定字符串
"hello world"
,删除字符'o'
后,结果是"hell wrld"
。
- 示例:给定字符串
时间复杂度:
- 遍历一次字符串,时间复杂度为 O(n),其中 n 是字符串
s
的长度。
空间复杂度:
- 由于使用了
StringBuilder
来存储新的字符串,空间复杂度为 O(n),其中 n 是字符串s
的长度。