#abc456c. Not Adjacent

Not Adjacent

题目描述

给定一个由字符 a、b、c 组成的字符串 SS。

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

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

什么是子串? SS 的子串是从 SS 的开头删去零个或多个字符、从末尾删去零个或多个字符后得到的字符串。例如,ab 是 abc 的子串,但 ac 不是 abc 的子串。

输入格式

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

输出格式

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

abbc
6
cabcabcbcaccacbcbcaabacbacaabccacbccbcacbacbacabcacabcaccaaaaabababcbabacaccabbcacbcbcbcababcbcbabca
760

数据范围与提示

样例 1 解释: 满足条件的子串共 6 个:

  • a(第 11 到第 11 个字符)
  • b(第 22 到第 22 个字符)
  • b(第 33 到第 33 个字符)
  • c(第 44 到第 44 个字符)
  • ab(第 11 到第 22 个字符)
  • bc(第 33 到第 44 个字符)

注意:第 22 和第 33 个子串虽然字符串内容相同,但位置不同,视为不同子串。

对于 100%100\% 的数据,SS 是长度在 11 到 3×1053 \times 10^5 之间的由 a、b、c 组成的字符串。