R00736
부분 문자열 찾기
레이팅
의견: 0
설명
문자열 \(T\)(텍스트)와 \(P\)(패턴)가 주어진다. \(T\) 안에서 \(P\)가 등장하는 모든 위치를 찾아라. 등장 위치들은 서로 겹쳐도 된다.
\(T\)의 \(i\)번째 문자부터 \(P\)가 시작해 일치하면, 그 등장 위치를 \(i\)라 한다 (\(1\)-인덱스).
제약
\(1 \le |P| \le |T| \le 200\,000\).
입력 형식
첫째 줄에 텍스트 \(T\)가, 둘째 줄에 패턴 \(P\)가 주어진다. 두 문자열은 공백 없는 대소문자 알파벳으로만 이루어져 있다.
출력 형식
첫째 줄에 \(P\)가 \(T\)에 등장하는 횟수를 출력한다. 등장 횟수가 \(1\) 이상이면 둘째 줄에 등장 위치들을 오름차순으로 공백으로 구분해 출력한다.
예제 1
입력
ABABABAB
ABA
출력
3
1 3 5
설명
위치 1, 3, 5에서 등장(겹침 허용) → 3회.
예제 2
입력
AAAAA
B
출력
0
설명
등장하지 않음 → 0회.
문제 정보
riseoj 작성
출처 Original
태그
평가 및 의견
부분 문자열 찾기
개요
Log in to rate problems.
개별 의견
아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.
풀이 제출
부분 문자열 찾기
게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다.
로그인하고 제출하기