gpt4 book ai didi

c++ - 给定一个单词和一段文本,返回文本中单词的字谜出现次数

转载 作者:太空狗 更新时间:2023-10-29 23:20:40 26 4
gpt4 key购买 nike

<分区>

例如。单词是for,文本是forxxorfxdofrfor的字谜将是ofrorffro 等。因此对于这个特定示例,答案将是 3

这是我想出的。

#include<iostream>
#include<cstring>

using namespace std;

int countAnagram (char *pattern, char *text)
{
int patternLength = strlen(pattern);
int textLength = strlen(text);

int dp1[256] = {0}, dp2[256] = {0}, i, j;

for (i = 0; i < patternLength; i++)
{
dp1[pattern[i]]++;
dp2[text[i]]++;
}

int found = 0, temp = 0;

for (i = 0; i < 256; i++)
{
if (dp1[i]!=dp2[i])
{
temp = 1;
break;
}
}

if (temp == 0)
found++;


for (i = 0; i < textLength - patternLength; i++)
{
temp = 0;
dp2[text[i]]--;
dp2[text[i+patternLength]]++;
for (j = 0; j < 256; j++)
{
if (dp1[j]!=dp2[j])
{
temp = 1;
break;
}
}
if (temp == 0)
found++;
}
return found;
}


int main()
{
char pattern[] = "for";
char text[] = "ofrghofrof";

cout << countAnagram(pattern, text);

}

对于上述问题是否存在更快的算法?

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