#AGC027E. [AGC027E] ABBreviate

[AGC027E] ABBreviate

题目描述

ab のみからなる文字列 s s があります。 すぬけ君は、次の 2 2 種類の操作を任意の順序で任意の回数だけ行えます。

  • s s 中の部分文字列 aa を一箇所選び、b へ置き換える。
  • s s 中の部分文字列 bb を一箇所選び、a へ置き換える。

0 0 回以上の操作の後、s s は何通りありうるでしょうか? 109 + 7 10^9\ +\ 7 で割った余りを求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

s s

输出格式

操作後の s s は何通りありうるか? 109 + 7 10^9\ +\ 7 で割った余りを出力せよ。

题目大意

给定一个只含小写字母 a,b\mathtt{a}, \mathtt{b} 的字符串 ss,每次你可以执行以下两种操作:

  1. 选取 ss 中连续的两个字符 aa\mathtt{aa},把它们删去,替换成一个字符 b\mathtt{b}
  2. 选取 ss 中连续的两个字符 bb\mathtt{bb},把它们删去,替换成一个字符 a\mathtt{a}

请你求出执行若干次操作后,能够得到的本质不同的字符串有多少个,答案对 (109+7)({10}^9 + 7) 取模。

  • 1s1051 \le |s| \le {10}^5
aaaa
6
aabb
5
ababababa
1
babbabaaba
35

提示

制約

  • 1  s  105 1\ \leq\ |s|\ \leq\ 10^5
  • s s ab のみからなる。

Sample Explanation 1

次の 6 6 通りです。 - aaaa - aab - aba - baa - bb - a

Sample Explanation 2

次の 5 5 通りです。 - aabb - aaa - bbb - ab - ba

Sample Explanation 3

すぬけ君は一度も操作を行えません。