#ATagc027e. [AGC027E] ABBreviate

[AGC027E] ABBreviate

题目描述

有一个只由 ab 组成的字符串 ss。すぬけ君可以以任意顺序、任意次数执行以下两种操作:

  • ss 中选择一个子串 aa,将其替换为 b
  • ss 中选择一个子串 bb,将其替换为 a

经过 00 次或多次操作后,ss 可能有多少种不同的结果?请输出结果对 109+710^9 + 7 取模后的值。

输入格式

输入为以下格式,从标准输入读取:

ss

输出格式

输出经过操作后 ss 可能有多少种不同的结果,对 109+710^9 + 7 取模。

样例 1

输入

aaaa

输出

6

样例 2

输入

aabb

输出

5

样例 3

输入

ababababa

输出

1

样例 4

输入

babbabaaba

输出

35

说明/提示

限制条件

  • 1s1051 \leq |s| \leq 10^5
  • ss 只包含 ab

样例解释 1

共有以下 66 种可能的结果:

  • aaaa
  • aab
  • aba
  • baa
  • bb
  • a

样例解释 2

共有以下 55 种可能的结果:

  • aabb
  • aaa
  • bbb
  • ab
  • ba

样例解释 3

すぬけ君无法进行任何操作。

由 ChatGPT 4.1 翻译