大厂面试手撕面试题:删除字符串中的指定字符(亲测可用的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的长度。 
