gpt4 book ai didi

Java - 计算另一个字符串中出现的字符数

转载 作者:行者123 更新时间:2023-12-02 00:26:46 25 4
gpt4 key购买 nike

我正在比较 Java 中的两个字符串,看看第一个字符串中有多少个字符出现在第二个字符串中。以下是一些期望:

matchingChars("AC", "BA") → 1  
matchingChars("ABBA", "B") → 2
matchingChars("B", "ABBA") → 1

我的做法如下:

 public int matchingChars(String str1, String str2) {

int count = 0;

for (int a = 0; a < str1.length(); a++)
{
for (int b = 0; b < str2.length(); b++)

{ char str1Char = str1.charAt(a);
char str2Char = str2.charAt(b);

if (str1Char == str2Char)
{ count++;
str1 = str1.replace(str1Char, '0');
}
}
}
return count;
}

我知道我的方法不是最好的,但我认为它应该可以。然而,对于

   matchingChars("ABBA", "B") → 2  

我的代码生成“1”而不是“2”。有人有什么建议或建议吗?非常感谢。

最佳答案

假设将“AABBB”与“AAAABBBCCC”进行比较应返回 15 (2*3 + 3*3 + 0*3),则:

对于每个字符串,创建一个从字符串的字符到字符数的映射。计算两个映射的键集的交集。对于键集中的每个元素,累加值的乘积。打印结果。这与两个字符串的大小呈线性关系。

关于Java - 计算另一个字符串中出现的字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9855826/

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