문자열 일치도

시간 제한1초메모리 제한1024 MB

요약
S의 길이 M인 모든 부분 문자열과 T가 같은 문자를 갖는 위치 수의 합을 구한다.
난이도

보통10점 중 5점

유형
문자열 매칭, 문자열, 누적 합
정답자
아직 제출이 없습니다

문제

길이가 같은 두 문자열의 일치도를 두 문자열이 같은 문자를 가지는 위치의 수라고 하자.

영어 알파벳 소문자로만 이루어진 두 문자열 SS와 TT가 주어진다. SS와 TT의 길이는 각각 NN과 MM이다. NN은 MM보다 크거나 같다.

SS의 모든 길이가 MM인 부분 문자열 N−M+1N-M+1개에 대해 TT와의 일치도의 합을 구하여라.

부분 문자열의 정의는 노트를 참고하라.

입력

첫째 줄에 문자열 SS의 길이 NN과 문자열 TT의 길이 MM이 공백으로 구분되어 주어진다. (1≤M≤N≤200,0001 \leq M \leq N \leq 200\\,000)

둘째 줄에 영어 알파벳 소문자로만 이루어진 길이 NN의 문자열 SS가 주어진다.

셋째 줄에 영어 알파벳 소문자로만 이루어진 길이 MM의 문자열 TT가 주어진다.

출력

첫째 줄에 SS의 모든 길이가 MM인 부분 문자열 N−M+1N-M+1개에 대해 TT와의 일치도의 합을 출력한다.

힌트

부분 문자열이란, 문자열에서 연속한 부분에 해당하는 문자열이다. 예를 들어 ab, bca, abca는 abca의 부분 문자열이고, ac, ba는 abca의 부분 문자열이 아니다.

예제1

  1. 예제 1

    입력
    6 3
    banana
    nan
    
    예상 출력
    5