#abc456d. Not Adjacent 2

Not Adjacent 2

题目描述

给定一个由字符 abc 组成的字符串 SS

SS 中满足任意两个相邻字符都不相同的非空子序列的数量,结果对 998244353998244353 取模。

即使两个子序列作为字符串是相同的,只要它们来自 SS 中的不同位置,就被视为不同的子序列。

什么是子序列? SS 的子序列是从 SS 中删去零个或多个字符后,将剩余字符按原顺序拼接得到的字符串。例如,abacabc 的子序列,但 cabb 不是 abc 的子序列。

输入格式

输入只有一行,一个字符串 SS

输出格式

输出一行,表示满足条件的子序列数量对 998244353998244353 取模的结果。

abbc
11
cabcabcbcaccacbcbcaabacbacaabccacbccbcacbacbacabcacabcaccaaaaabababcbabacaccabbcacbcbcbcababcbcbabca
378217423

数据范围与提示

样例 1 解释: 满足条件的子序列共 1111 个:

  • a(第 11 个字符)
  • b(第 22 个字符)
  • b(第 33 个字符)
  • c(第 44 个字符)
  • ab(第 1,21,2 个字符)
  • ab(第 1,31,3 个字符)
  • ac(第 1,41,4 个字符)
  • bc(第 2,42,4 个字符)
  • bc(第 3,43,4 个字符)
  • abc(第 1,2,41,2,4 个字符)
  • abc(第 1,3,41,3,4 个字符)

注意:第 22 和第 33 个子序列内容相同但位置不同,视为不同子序列。

样例 2 解释: 输出答案对 998244353998244353 取模的结果。

对于 100%100\% 的数据,SS 是长度在 113×1053 \times 10^5 之间的由 abc 组成的字符串。