我需要从一个字符串中删除重复的字符。我可以像这样使用BitSet来实现:
private static String removeDup(String s1, String s2) {
BitSet bitSet = new BitSet(26);
char[] s1Chars = s1.toCharArray();
for (char s1Char : s1Chars) {
bitSet.set(s1Char);
}
char[] s2Chars = s2.toCharArray();
StringBuilder sb = new StringBuilder();
for (char s2Char : s2Chars) {
if (bitSet.get(s2Char)) {
//System.out.println("Duplicate " + s2Char);
} else {
sb.append(s2Char);
}
}
return sb.toString();
}
虽然这种方法可行,但在时间和空间复杂度方面是否有更好的优化方法?谢谢。
例如:
- 输入:
"hello", "world"
- 输出:
wrd
s2
中过滤掉所有出现在s1
中的字符,对吗? - AJMansfield