【发布时间】:2018-04-17 14:34:01
【问题描述】:
对于我的第一部分问题,我们已经给出了一长串输入,我们必须计算它的出现次数。 例如。
Input = AXBHAAGHXAXBH
Find = AXBH
Output = 2
这可以通过使用string.find("term") 循环来实现。例如。
#include <string>
#include <iostream>
int main()
{
int occurrences = 0;
std::string::size_type pos = 0;
std::string inputz = "AXBHAAGHXAXBH";
std::string target = "AXBH";
while ((pos = inputz.find(target, pos )) != std::string::npos) {
++ occurrences;
pos += target.length();
}
std::cout << occurrences << std::endl;
}
但是,我不确定第二部分在哪里做,它需要考虑随机结构: 随机结构是指我们发现的任何方向。重要说明:查找事件总是组合在一起,但可以具有不同的结构。 我不想用例,因为某些样本发现太大了,例如。查找 AXBHNMB 需要考虑的案例太多,并希望采用更通用的方法。
Eg. AXBH is find, then AXHB is also acceptable for the occurence
一个恰当的例子:
Input = AXBHAAGHXAXBH**ABHX**NBMN**AHBX**
Find = AXBH
Output = 4
如果您请为给定的示例编写代码,并附上您使用的任何新功能的解释/说明链接。
【问题讨论】:
-
你是在问如何找到一个字符串中的所有子串排列?
-
input和find是否只包含大写字母? -
@Ron 将子串组排列在一起。我已经更新了问题,例如。如果 find 是 AXB 则输入将始终将它们组合在一起,例如。 AXBNMNNOBXANBMOAXB
-
@arsho 是的。输入总是大写
-
@Gengestu 感谢您的编辑