题解:P6312 [PA2018] Palindrom
zhangzirui66
·
·
题解
题目大意:
输入一个字符串,判断它是否回文。
因为内存很小,所以要一个一个读入字符。
判断一个字符串是否回文,考虑进行字符串哈希。
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;
}
```