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

代码解释:

  1. removeCharacter 方法:
    • 输入:一个字符串 s 和一个字符 t
    • 使用 StringBuilder 来构建新的字符串,这样在处理大量字符时会更加高效。
    • 遍历原字符串 s,将不等于 t 的字符添加到 StringBuilder 中。
    • 最终通过 toString() 返回结果。
  2. main 方法
    • 示例:给定字符串 "hello world",删除字符 'o' 后,结果是 "hell wrld"

时间复杂度:

  • 遍历一次字符串,时间复杂度为 O(n),其中 n 是字符串 s 的长度。

空间复杂度:

  • 由于使用了 StringBuilder 来存储新的字符串,空间复杂度为 O(n),其中 n 是字符串 s 的长度。

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注