Необходимый здесь подход не зависит от языка, хотя вы, по крайней мере, должны быть уверены, что это возможно для достижения вашей цели на Java. Решение проще описать с помощью указателей с языка C или C++, но я попытаюсь использовать здесь более общие термины.
Начните с первого символа «содержащего списка» и «содержащегося списка».
Если оба символа совпадают, перейдите к следующему символу обоих списков.
Если вы достигли конца «содержащегося списка,» ответ да, это является содержится в другом списке.
В противном случае, если вы достигли конца «содержащего списка», ответ будет отрицательным, он не содержит «содержащий список».
В противном случае повторите процесс с двумя текущими символами.
В противном случае перейти к следующему символу из «списка, содержащего» и попробуйте еще раз против того же характера «содержащегося списка.»
Если вы дойдете до конца «содержащий список,» ответ нет, это не содержать «содержащийся список.»
В противном случае повторите процесс с двумя текущими символами.
Если нарисовать две стрелки («указатели») на персонажей в каждом списке на бумаге, и только когда-либо поднять стрелу в «содержащемуся списке» справа, когда она совпадает с характером в «содержащий список» и набросите стрелку в «содержащем списке» справа на каждый шаг, вы увидите, как разворачиваются возможности для сопоставления успеха и сбоя.
Возможно, необходимо выполнить цикл для каждого элемента в списке2/list3 и проверить, что индекс больше, чем последний найденный индекс. –