如何在java中编写计算字谜出现次数的算法?
嗨,我想用java写一个字谜算法。我的要求是如果有人给了这样的字符串
Input: "aa aa odg dog gdo"
其字谜计数应为2。谁能帮我修一下吗?
我试过一个解决办法,但不管用
public static void main(String[] args) {
String text = "a c b c run urn urn";
String word = "urn";
System.out.print(countAnagrams(text, word));
}
static boolean araAnagram(String s1,
String s2)
{
char[] ch1 = s1.toCharArray();
char[] ch2 = s2.toCharArray();
Arrays.sort(ch1);
Arrays.sort(ch2);
if (Arrays.equals(ch1, ch2))
return true;
else
return false;
}
static int countAnagrams(String text, String word)
{
int N = text.length();
int n = word.length();
int res = 0;
for (int i = 0; i <= N - n; i++) {
String s = text.substring(i, i + n);
if (araAnagram(word, s))
res++;
}
return res;
}
这个程序不符合我的要求 请帮忙
# 1 楼答案
这可以解决问题
# 2 楼答案
假设有一种方法可以将一个单词转换成有序的字符序列,那么可以使用流API计算字谜的数量:
测试:
输出