字符串包含问题

两个字符串中字符是否包含的问题

比如,如果是下面两个字符串:
String 1: ABCDEFGHLMNOPQRS
String 2: DCGSRQPO
答案是true,所有在string2里的字母string1也都有。

 

如果是下面两个字符串:  
String 1: ABCDEFGHLMNOPQRS   
String 2: DCGSRQPZ  
答案是false,因为第二个字符串里的Z字母不在第一个字符串里。

方案一:两个循环分别轮询,复杂度o(m*n)

方案二:用快排法对两个字符串进行排序,然后遍历两个已排序的字符串,复杂度o(mlgm)+o(nlgn)+o(m+n)

         遍历已经排序字符串的代码

  public static bool ContainsAllElement()
        {
            int[] array1 = { 1, 3, 5, 7, 9, 10, 19, 34 };
            int[] array2 = { 5, 9, 19 };

            int i = 0;
            int j = 0;
            while (i < array1.Length && j < array2.Length)
            {
                if (array1[i] < array2[j])
                {
                    i++;
                }
                else
                {
                    if (array1[i] == array2[j])
                    {
                        i++;
                        j++;
                    }
                }
            }

            if (j == array2.Length )
                return true;
            return false;
        }

  

转载于:https://www.cnblogs.com/wuMing-dj/p/3370243.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值