for 문과 실행 문으로 이루어진 문자열이 주어질 때, 파이썬 문법에 맞는 들여쓰기 경우의 수를 1,000,000,007로 나눈 나머지를 구한다.
프로그래밍 언어 Python은 C나 Java와 달리 중괄호를 여닫아서 코드를 구분하지 않는다. 대신 들여쓰기(탭)로 구분한다. 이 문제에서 다루는 Python 구문은 다음 두 가지다.
여러 구문이 들여쓰기 없이 순서대로 주어졌을 때, 들여쓰기를 넣는 경우의 수가 모두 몇 가지인지 출력하는 프로그램을 작성하시오.
첫째 줄에 NNN(1≤N≤50001 \le N \le 50001≤N≤5000)개의 문자로 이루어진 문자열이 주어진다. 각 문자는 'f'(문제 본문의 for 문) 또는 'e'(문제 본문의 실행문)이며, 들여쓰기를 어떻게 넣어도 Python 문법에 어긋나는 입력은 주어지지 않는다.
구문이 주어졌을 때 Python 들여쓰기를 만족하는 경우의 수를 1,000,000,007로 나눈 나머지를 출력한다.
문자열 fefe에는 다음 두 가지 들여쓰기가 있다.
for statement execute statement for statement execute statement