您的位置:首页 > 理论基础 > 数据结构算法

BF算法

2015-08-20 11:12 387 查看
BF算法

import java.util.ArrayList;
import java.util.List;
public class BfMath {
/**
* //串一中包含几个串二,在串一中的起始地址
* @param str1
* @param str2
* @return
*/
public static List<Integer> indexOfStr(String str1,String str2){
char [] charArray=str1.toCharArray();
char [] charArray1=str2.toCharArray();
List<Integer> list=new ArrayList<Integer>();
int k=0;
for(int i=0;i<=charArray.length-charArray1.length+1;i++){
if(charArray[i]==charArray1[k]){
k++;
}else{
k=0;
}
if(k==charArray1.length-1){
k=0;
list.add(i-1);
}
}
return list;
}

/**
* 判断串一中是否包含串二
* @param str1
* @param str2
* @return
*/
public static Boolean indexOf(String str1,String str2){
char [] charArray=str1.toCharArray();
char [] charArray1=str2.toCharArray();
@SuppressWarnings("unused")
List<Integer> list=new ArrayList<Integer>();
int k=0;
for(int i=0;i<=charArray.length-charArray1.length+1;i++){
if(charArray[i]==charArray1[k]){
k++;
}else{
k=0;
}
if(k==charArray1.length-1){
k=0;
return true;
}
}
return false;
}
//测试代码
public static void main(String args[]){
//测试代码
String str1="sfghdfdsssdddsfds";
String str2="fds";
BfMath bfMath = new BfMath();
List<Integer>indexList=BfMath.indexOfStr(str1, str2);
for(Integer index:indexList){
System.out.println(index);
}
Boolean flag=BfMath.indexOf(str1, str2);
System.out.println(flag);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 BF算法