欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

算法 --暴力匹配 查找一个字符串中是否包含另一个字符串

程序员文章站 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));
    }
}
相关标签: Java java 算法