gpt4 book ai didi

java - 计算字符串和字符串 vector 中常见字符的数量

转载 作者:太空宇宙 更新时间:2023-11-04 08:57:47 24 4
gpt4 key购买 nike

我的问题是如何计算但不计算同一个字符两次。就像比较 'aba' 和 'are' 应该给出 1 作为结果,因为它只有一个共同的字符。

这是我到目前为止所得到的:

public int sameChars (Vector<String> otherStrs){
int result = 0;
String original = "aba";
for (int h= 0; h< otherStrs.size(); h++) {
String targetStr = otherStrs.get(h);
for (int i=0; i< original.length(); i++) {
char aux = original.charAt(i);
for (int j=0; j< Math.min(original.length(), targetStr.length()); j++) {
char targetAux = targetStr.charAt(j);
if (aux == targetAux) {
result++;
break;
}
}
}
}
return result;
}

欢迎提出想法,谢谢。

最佳答案

您可以根据原始字符串创建字符计数的哈希值。然后,对于每个目标字符串,检查它的哈希值中是否有一个具有非零值的字符。这将防止多次扫描原始字符串。

伪代码:

For each char c in original string {
hash[c]++
}
For each target string str {
For each char c_ in str {
if hash[c_] > 0 {
result++;
}
}
}

关于java - 计算字符串和字符串 vector 中常见字符的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1765390/

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