Brute-Force算法

本文介绍了Brute-Force(BF)算法,一种简单的字符串匹配方法。BF算法通过逐个字符对比目标串与模式串来查找模式串在目标串中的位置。如果匹配成功则返回起始索引,否则返回-1。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=medium]
[align=center][b]Brute-Force算法[/b][/align]
[b]Brute-Force算法简称BF算法:[/b]也称简单匹配算法,其基本思路是:从目标串s=”s0s1…sn-1”的第一个字符开始和模式串t=”t0t1…tm-1”中的第一个字符比较,若相等,则继续逐个比较后续字符,否则,从目标串s的第2个字符开始重新与模式串t的第一个字符进行比较,依次类推,若从模式串s的第i个字符开始,每个字符依次和目标串t中的对应字符相等,则匹配成功,该算法返回i;否则匹配失败,返回-1.
[/size]

private static int bruteforce(String source, String sub) {
int j = 0, i = 0;
int index = -1;
while (i < source.length() && j < sub.length()) {
if (source.charAt(i) == sub.charAt(j)) {
i++;
j++;
} else {
//使i回退到下一个字符,应为子串的前面j向可能匹配成功,而第j+1项失败,所以i=i-j+1
i = i - j + 1;
j = 0;
}
if (j == sub.length()) {
index = i - sub.length();
} else {
index = -1;
}
}
return index;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值