C - Let's Make a Palindrome Editorial

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 200200

問題文

英小文字と ? のみからなる文字列 SS が与えられます。

文字列 SS に含まれる ? をそれぞれ好きな英小文字に置き換えることで作れる回文は何通りあるか求めてください。

ただし、答えは非常に大きくなる可能性があるので、 998244353998244353 で割ったあまりを出力してください。

回文の定義 文字列 TT が回文であるとは、1iT1 \leq i \leq | T | を満たすすべての整数 ii について、TT の前から ii 文字目の文字と後ろから ii 文字目の文字が同じ文字であることをいいます。

制約

  • 1S2000001 \leq | S | \leq 200000
  • SS は英小文字と ? のみからなる

入力

入力は以下の形式で標準入力から与えられます。

SS

出力

答えを 998244353998244353 で割ったあまり を 11 行に出力してください。


入力例 1Copy

Copy
a??

出力例 1Copy

Copy
26

aaaabaaca など、全部で 2626 通りの回文を作ることができます。


入力例 2Copy

Copy
atcoder

出力例 2Copy

Copy
0

回文を作ることはできません。


入力例 3Copy

Copy
?????????????

出力例 3Copy

Copy
45855352

答えを 998244353998244353 で割ったあまりを出力することに注意してください。



2025-04-11 (Fri)
11:19:11 +00:00