gpt4 book ai didi

java - 从第二个字符串中删除第一个字符串中存在的字符

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:17:44 25 4
gpt4 key购买 nike

我编写了一个程序来删除第二个字符串中存在于第一个字符串中的字符。复杂度为 BigO(n^2)。能否进一步降低复杂度?

public class Tmp {

public static void main(String[] args) {
String s = "halloween";
String s1 = "halcyon";
char[] ss = s.toCharArray();
char[] ss1 = s1.toCharArray();

for(int i=0;i<ss.length;i++){
for(int j=0;j<ss1.length;j++){
if(ss1[j] == ss[i]){
ss1[j] = 'x'; //Replace the common char with x
}
}
}
System.out.println(Arrays.toString(ss1));
}
}

输出

 [x, x, x, c, y, x, x]

最佳答案

  1. 将第一个字符串转换为 Map。 O(N)
  2. 遍历其他字符串并检查步骤 1 中的字符是否存在于 Map 中。O(N) + O(1)

总时间复杂度 = O(N)

这里你有额外的空间复杂度来存储 MAP。

关于java - 从第二个字符串中删除第一个字符串中存在的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38430262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com