좋은 부분 문자열의 개수
면접 대비시간 제한2초메모리 제한512 MB
문자열 s의 부분 문자열 중 나쁜 글자가 k개 이하인 서로 다른 문자열의 개수를 센다.
문제
알파벳 소문자로만 이루어진 문자열 가 주어진다. 26개의 알파벳은 각각 좋은 알파벳이거나 나쁜 알파벳이다.
길이가 인 문자열 에서 부분 문자열 ()은 을 뜻한다.
부분 문자열 을 이루는 문자 중에서 나쁜 알파벳의 개수가 개 이하이면, 그 부분 문자열을 좋다고 한다.
의 서로 다른 좋은 부분 문자열의 개수를 찾는 프로그램을 작성하시오. 인 경우에 두 부분 문자열 와 를 서로 다르다고 한다. 위치가 달라도 내용이 같은 부분 문자열은 한 번만 센다.
입력
첫째 줄에 알파벳 소문자로 이루어진 문자열 가 주어진다. 의 길이는 1500을 넘지 않는다.
둘째 줄에 0과 1로 이루어진 길이 26의 문자열이 주어진다. 번째 글자가 1이면 번째 알파벳이 좋은 알파벳이고, 0이면 나쁜 알파벳이다. 첫 번째 문자는 알파벳 'a'를 나타내고, 두 번째 문자는 'b'를 나타낸다.
셋째 줄에 가 주어진다. ()
출력
의 서로 다른 좋은 부분 문자열의 개수를 출력한다.