이 문제에서는 주어진 문자열 S에서 하위 문자열 S2가 발생한 후에 하위 문자열 S1이 발생하는지 확인해야 합니다. 문자열 S에서 S1과 S2의 시작 인덱스를 비교하여 이 문제를 해결할 수 있습니다. p>
문제 설명 - S, S1, S2라는 세 개의 하위 문자열이 제공됩니다. 문자열 S에는 항상 S1이 하위 문자열로 포함됩니다. 주어진 문자열 S에서 부분 문자열 S1이 부분 문자열 S2 뒤에 나타나는지 확인해야 합니다.
Enter – S = “abxtutorialspointwelcomepoint”, S1 = “환영합니다”, S2 = “포인트”
Output – 예
설명 – 문자열 S에서 "점" 하위 문자열이 2번 나타납니다. 하나는 "환영합니다" 앞에 있고 다른 하나는 "환영합니다" 뒤에 있습니다. 따라서 문자열 S2가 발생한 후에 문자열 S1이 발생한다고 말할 수 있습니다.
Input– S = "abcdefgh", S1 = "abcd", S2 = "gh";
Output – 아니요
설명S1은 문자열 S의 시작 부분에 있습니다. 따라서 S1은 하위 문자열 S2 뒤에 나타나지 않습니다.
Enter – S = “abce”, S1 = “bc”, S2 = “xy”
Output – 아니요
Explanation – 문자열 S에는 문자열 S2가 존재하지 않으므로 No.를 인쇄합니다.
방법 1알고리즘
공간 복잡도 - 문자열 S2의 시작 인덱스를 저장하므로 O(N)입니다.
방법 2
알고리즘
공간 복잡도 - 부분 문자열을 저장하므로 O(min(n1, n2)입니다.
첫 번째 방법에서는 컬렉션을 사용하여 S2의 시작 인덱스를 저장하는데, 이는 두 번째 방법의 코드보다 더 많은 공간을 필요로 합니다. 두 번째 방법의 코드는 첫 번째 방법보다 읽기 쉽습니다. 또는 프로그래머는 S1이 나타난 후에 하위 문자열 S2가 나타나는지 확인하는 문제를 해결하려고 시도할 수 있습니다.
위 내용은 주어진 문장에서 부분 문자열 S2가 발생한 후에 부분 문자열 S1이 나타나는지 확인합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!