Java 数据结构 & 算法宁可累死自己, 也要卷死别人 16 字符串暴力匹配
Posted 我是小白呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 数据结构 & 算法宁可累死自己, 也要卷死别人 16 字符串暴力匹配相关的知识,希望对你有一定的参考价值。
概述
从今天开始, 小白我将带大家开启 Java 数据结构 & 算法的新篇章.
字符串匹配
字符串匹配 (String Matching) 指的是判断一个字符串是否包含另一个字符串.
举个例子:
- 字符串 “Hello World” 包含字符串 “Hello”
- 字符串 “Hello World” 不包含字符串 “LaLaLa”
暴力匹配
暴力匹配 (Brute-Force) 的思路:
- 如果
charArray1[i] == charArray2[j]
, 即匹配成功, i++, j++, 继续匹配下一个字符 - 如果匹配失败, i 重置为
i - (j - 1)
, j 重置成 0, 继续暴力匹配
暴力匹配实现
public class 暴力匹配
public static int BruteForce(String str1, String str2)
// 将字符串转化为char数组
char[] charArray1 = str1.toCharArray();
char[] charArray2 = str2.toCharArray();
// string长度
int length1 = charArray1.length;
int length2 = charArray2.length;
// 调试输出
System.out.println(charArray1);
System.out.println(charArray2);
int i = 0;
int j = 0;
while (i < length1 && j < length2)
// 判断是否匹配
if (charArray1[i] == charArray2[j])
// 各往后挪一位
i++;
j++;
else
// 重新匹配
i = i - (j - 1);
j = 0;
// 匹配完成, 返回index
if (j == length2)
return i - j;
else
return -1;
public static void main(String[] args)
// 字符串1
String str1 = "I am little white";
// 字符串2
String str2 = "white";
// 暴力匹配
int result = BruteForce(str1, str2);
System.out.println(result);
输出结果:
I am little white
white
12
以上是关于Java 数据结构 & 算法宁可累死自己, 也要卷死别人 16 字符串暴力匹配的主要内容,如果未能解决你的问题,请参考以下文章
Java 数据结构 & 算法宁可累死自己, 也要卷死别人 20 排序算法
Java 数据结构 & 算法宁可累死自己, 也要卷死别人 18 贪心算法
Java 数据结构 & 算法宁可累死自己, 也要卷死别人 18 贪心算法
Java 数据结构 & 算法宁可累死自己, 也要卷死别人 17 KMP 算法