#abc456c. Not Adjacent

Not Adjacent

题目描述

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

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

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

什么是子串? SS 的子串是从 SS 的开头删去零个或多个字符、从末尾删去零个或多个字符后得到的字符串。例如,ababc 的子串,但 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 是长度在 113×1053 \times 10^5 之间的由 abc 组成的字符串。