算法 --暴力匹配 查找一个字符串中是否包含另一个字符串
程序员文章站
2022-03-08 22:50:58
...
今天去面试java后端,遇到一个用基本算法找出一个字符串是否包含另一个字符串,下面这个解决方法是暴力匹配.
public class VolentMatch {
public static int violentMatchArithmetic(char[] origin,char[] key){
//遍历源char的下标
int i = 0;
//遍历key的下标
int j = 0;
while (i < origin.length) {
//如果key没有遍历完,就表示没有匹配的,如果遍历完了,
// 就表示包含有查找的字符串,就返回字符串开始的下标
if (j < key.length) {
//如果两个相等, 继续往下匹配
if (origin[i] == key[j]) {
i++;
j++;
} else {
//如果不相等,i下标就回溯,j置为0
i = i - (j - 1);
j = 0;
}
} else {
return i - j;
}
}
return -1;
}
public static void main(String[] args) {
String s = "123 信 仰 ,信仰 123 dbfg 123信仰ccjdghhrkkfhhg";
String k = "123信仰";
char[] origin= s.toCharArray();
char[] key = k.toCharArray();
System.out.println(violentMatchArithmetic(origin, key));
}
}
上一篇: 对FriendFeed的一点思考
下一篇: 配置电信网通双线双IP的解决办法