两个字符串中字符是否包含的问题
比如,如果是下面两个字符串:
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;
}