UVA 11475 Extend to Palindrome hash
来源:互联网 发布:南京市雨花区网络问政 编辑:程序博客网 时间:2024/06/05 11:20
题意:给出一个字符串,让你添加最少的字符,使其成为回文串。
思路:这个题是求出最长的回文后缀。这里我们可以用字符串hash来做这道题。
我们从后往前求出后缀的从前向后和从后向前的子串的hash值,如果hash值相同,说明该位置是回文串。
代码如下:
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int MAX = 200010;char str[MAX];int main(void){ //freopen("input.txt","r",stdin); while(scanf("%s",str) != EOF){ int len = strlen(str); unsigned int pre = 0, suf = 0; unsigned int MAGIC = 233,pow = 1; int maxlen = 0; for(int i = len - 1; i >= 0; --i){ pre = pre + str[i] * pow; pow *= MAGIC; suf = suf * MAGIC + str[i]; if(pre == suf) maxlen = i; } printf("%s",str); for(int i = maxlen - 1; i >= 0; --i) putchar(str[i]); putchar('\n'); } return 0;}
0 0
- UVA 11475 Extend to Palindrome hash
- Uva 11475 : Extend to Palindrome(Hash或KMP)
- UVA 11475 Extend to Palindrome(字符hash)
- UVa 11475 - Extend to Palindrome
- Extend to Palindrome - UVa 11475 哈希
- UVa 11475-Extend to Palindrome JAVA
- UVA 11475 - Extend to Palindrome(KMP)
- uva 11475 - Extend to Palindrome(KMP)
- UVA 11475 Extend to Palindrome KMP
- Extend to Palindrome - UVa 11475 Manacher算法
- UVA - 11475 Extend to Palindrome manacher+贪心
- UVA 11475 Extend to Palindrome KMP,后缀数组
- UVA 11475 Extend to Palindrome 后缀数组 LCP
- UVA 11475 Extend to Palindrome (kmp || manacher || 后缀数组)
- UVA-11475-Extend to Palindrome((扩展)kmp)
- UVA11475:Extend to Palindrome(Hash 或 KMP)
- UVA11475--Extend to Palindrome
- UVa11475 - Extend to Palindrome
- 用Java打印指定范围内随机书的生成
- 【Leetcode】Binary Tree Inorder Traversal in JAVA
- 使用jacob打印word或excel
- 实验10第六题
- 第十二轴项目4-银行系统(二)
- UVA 11475 Extend to Palindrome hash
- 辛普森悖论:一个反直觉的统计现象
- Codeforces Round #277(Div. 2)
- 黑马程序员——Java面向对象(六)
- 2014软件测试现状调查活动开始啦!
- 小贝_html5 canvas
- pnp4nagios绘制多条对比曲线
- Vim 中使用 OmniComplete 为 C/C++ 自动补全
- 代理服务器squid