【发布时间】:2014-02-23 12:49:31
【问题描述】:
我一直在尝试编写一个子字符串搜索方法来计算字符串中出现的模式数量。我的问题必须处理我拥有的多个 for 循环和 if 语句的逻辑。如果输入字符串是 AABABAA 并且输入模式是 AA 它应该遍历并返回计数 2。有什么建议可以帮助我完成我的代码吗?
public int getCount(String pattern){
for (int i=0; i< this.strand.length()-pattern.length(); i++){
for (int k=0; k<pattern.length(); k++){
if (this.strand.charAt(i) == pattern.charAt(k)){
for(int j=1; j<pattern.length()-1; j++){
if (this.strand.charAt(j+i) == pattern.charAt(j)){
if(j==pattern.length()){
Count++;
}
}
else{
break;
}
}
}
else if (this.strand.charAt(i)!=pattern.charAt(k)){
break;
}
}
}
return Count;
}
【问题讨论】:
-
我很好奇你为什么需要三个 for 循环。如果我没看错你的问题,可以用一个来完成。
-
@ChrisForrence 如果他不能使用
substring或比较字符串,那么我认为他需要两个循环,除非他首先设置DFA ......或者对他的索引做一些棘手的事情。 -
我不想使用子字符串,因为我最终不得不使用其他通配符变量所以现在只是 for 循环