아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

문자열 찾기

시간 제한2초메모리 제한512 MB

요약
바늘 문자열 N의 서로 다른 순열 가운데 건초더미 문자열 H의 연속 부분 문자열로 나타나는 것의 개수를 센다.
난이도

어려움10점 중 8점

유형
슬라이딩 윈도우, 문자열 매칭, 해시맵, 문자열
정답자
아직 제출이 없습니다

문제

문자열 NN과 문자열 HH가 주어진다. NN은 바늘이라 하고 HH는 건초더미라 한다. 두 문자열은 모두 알파벳 소문자 “a”부터 “z”까지로만 이루어져 있다.

NN의 서로 다른 순열 중 HH의 부분 문자열로 한 번 이상 등장하는 것의 개수를 세는 프로그램을 작성하시오. NN의 서로 다른 순열은 총 11개부터 ∣N∣!|N|!개까지 있을 수 있다. 예를 들어 문자열 “aab”의 서로 다른 순열은 “aab”, “aba”, “baa” 세 개이다.

입력

첫째 줄에 바늘 문자열 NN이 주어진다. (1≤∣N∣≤200 0001 \le |N| \le 200\,000)

둘째 줄에 건초더미 문자열 HH가 주어진다. (1≤∣H∣≤200 0001 \le |H| \le 200\,000)

출력

NN의 서로 다른 순열 중 HH의 부분 문자열로 등장하는 것의 개수를 한 정수로 출력한다.

예제1

  1. 예제 1

    입력
    aab
    abacabaa
    
    예상 출력
    2