美文网首页
算法---字符串是否包含

算法---字符串是否包含

作者: reedthinking | 来源:发表于2017-06-18 19:28 被阅读0次

给定两个字符串s1和s2,判断s2是否包含s1

public class StringContain {
    public boolean stringContain(char[] str1, char[] str2) {
        int hash = 0;
        //取得一个str1的签名,用一个或运算,所有特征位置一
        for (int i = 0; i < str1.length; i++) {
            hash |= (1 << (str1[i] - 'a'));
        }
        //对str2的每一位进行与运算比对
        for (int i = 0; i < str2.length; i++) {
            //如果与运算为0说明并没有相应特征位,不包含
            if ((hash & (1 << (str2[i] - 'a'))) == 0) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        char[] str1 = "abcde".toCharArray();
        char[] str2 = "ddd".toCharArray();
        StringContain sContain = new StringContain();
        System.out.println(sContain.stringContain(str1, str2));
    }
}

相关文章

  • 算法---字符串是否包含

    给定两个字符串s1和s2,判断s2是否包含s1

  • KMP字符串匹配算法

    阮一峰的文章字符串匹配算法:给定两个字符串A和B,问字符串A是否包含字符串B。 KMP算法 最简单的思路如下: 就...

  • 深度理解kmp算法

    1.KMP算法是什么? 1.1 KMP算法求解什么类型问题 字符串匹配。给你两个字符串,寻找其中一个字符串是否包含...

  • iOS【NSString基本方法】

    判断字符串是否包含数字 判断字符串是否包含英文字母 判断字符串是否包含数字与字母 去掉首尾空格字符 判断是否为空 ...

  • KMP

    KMP算法是用来查看一个字符串是否包含另一个字符串的算法,暴力求解的时间复杂度是O(m*n),而KMP算法的时间复...

  • js ES6 includes查找字符

    查找字符串是否包含 "Runoob": 输出结果:true includes() 方法用于判断字符串是否包含指定的...

  • 递归转迭代通用方法

    KMP:查找字符串是否包含另外一个字符串,时间复杂度O(N),普通做法O(n2)Manacher算法:查找字符串里...

  • 字符串匹配的KMP算法

    算法举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"...

  • 字符串匹配算法

    场景:字符串A为主串,字符串B为模式串,比较字符串B是否能够在字符串A中进行匹配? 匹配算法:BF算法和RK算法。...

  • strings 字符串操作

    strings // 判断字符串前缀 // 判断字符串后缀 // 判断字符串是否包含子串 // 判断字符串s是否包...

网友评论

      本文标题:算法---字符串是否包含

      本文链接:https://www.haomeiwen.com/subject/uohwqxtx.html