#aBC214F. [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

输入 #1

abc

输出 #1

4

输入输出样例 #2

输入 #2

aa

输出 #2

1

输入输出样例 #3

输入 #3

acba

输出 #3

6

输入输出样例 #4

输入 #4

chokudai

输出 #4

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 翻译