题解:P6312 [PA2018] Palindrom

· · 题解

题目大意:

输入一个字符串,判断它是否回文。

因为内存很小,所以要一个一个读入字符。

判断一个字符串是否回文,考虑进行字符串哈希。

Hash_s=s_1×b^1+s_1×b^2+s_2×b^2+⋯+s_{len}×b^{len} # CODE ```cpp #include<cstdio> const int b = 998244351, mod = 998244353;//数越大,错误概率越小 long long x, y, f = 1; char c; int main(){ cin >> n; while((c = getchar()) < 'a'); for(; c >= 'a'; c = getchar()){ (f *= b) %= mod; (x += f * (c - 'a')) %= mod; ((y += (c - 'a')) *= b) %= mod; } puts(x == y ? "TAK" : "NIE"); return 0; } ```