#ATabc214f. [ABC214F] Substrings

[ABC214F] Substrings

AT_abc214_f [ABC214F] Substrings

题目描述

给定一个字符串 SS。高桥君按照以下步骤从该字符串构造一个新字符串 TT

  • 首先,在 SS 的一个或多个字符上做标记。但被标记的字符不能相邻。
  • 接着,删除所有未被标记的字符。
  • 最后,将剩下的字符按原顺序组成字符串 TT。注意,不能改变字符的顺序。

请问,作为 TT 可能出现的不同字符串有多少种?请输出对 109+710^9+7 取模的结果。

输入格式

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

SS

输出格式

输出作为 TT 可能出现的不同字符串的种数,对 109+710^9+7 取模。

样例 1

输入

abc

输出

4

样例 2

输入

aa

输出

1

样例 3

输入

acba

输出

6

样例 4

输入

chokudai

输出

54

说明/提示

限制条件

  • SS 仅由小写英文字母组成,长度为 112×1052 \times 10^5

样例解释 1

作为 TT 可能出现的字符串有 abcac44 种。当只标记 SS 的第 11 个字符时,TTa;只标记第 22 个字符时,TTb;只标记第 33 个字符时,TTc;标记第 11 个和第 33 个字符时,TTac。注意,不能同时标记第 11 个和第 22 个字符。

样例解释 2

作为 TT 可能出现的字符串只有 a。注意,即使标记的位置不同,也可能得到相同的 TT

样例解释 3

作为 TT 可能出现的字符串有 abcaaabca66 种。

由 ChatGPT 4.1 翻译