题目链接:uva 257 - Palinwords
题目大意:判定一个字符串是否有两个互相不为子串的回文串为子串。
解题思路:枚举长度为3和4的字符串,然后将每个字符串映射成一个hash值。
#include <cstdio>
#include <cstring>
#include <set>
#include <algorithm>
using namespace std;
const int maxn = 500;
char word[maxn];
int get_hash(int l, int r) {
int ret = 0;
for (int i = l; i <= r; i++)
ret = ret * 26 + word[i] - 'A';
return ret;
}
bool judge (char* s) {
int n = strlen(s), c = 0;
set<int> vec;
for (int i = 1; i < n - 1; i++) {
if (s[i-1] == s[i+1]) {
int tmp = get_hash(i-1, i+1);
if (vec.find(tmp) == vec.end()) {
vec.insert(tmp);
c++;
}
}
}
for (int i = 0; i < n - 3; i++) {
if (s[i] == s[i+3] && s[i+1] == s[i+2]) {
int a = get_hash(i, i + 3);
int b = get_hash(i + 1, i + 3);
int d = get_hash(i, i + 2);
if (vec.find(a) == vec.end() && vec.find(b) == vec.end() && vec.find(d) == vec.end()) {
vec.insert(a);
vec.insert(b);
vec.insert(d);
c++;
}
}
}
return c >= 2;
}
int main () {
while (scanf("%s", word) == 1) {
if (judge(word))
printf("%s\n", word);
}
return 0;
}
分享到:
相关推荐
算法面试通关40讲完整课件 14-17 哈希表(HashTable) 算法面试通关40讲完整课件 14-17 哈希表(HashTable) 算法面试通关40讲完整课件 14-17 哈希表(HashTable) 算法面试通关40讲完整课件 14-17 哈希表...
/* *@parameter key is the value it need to convert *@parameter len is the length of key,but not the size of the array *@parameter len_table is the size of table * * */ int replicate(char key[], ...
MD5-Hash哈希值计算工具是个比较好的工具,希望有需要的朋友可以用到
哈希表 一、实验目的 学会哈希函数的构造方法,处理冲突的机制以及哈希表的查找。 二、实验内容 说明以下概念 1、哈希函数 在一般情况下,需在关键字与记录在表中的存储位置之间建立一个函数关系,以 f(key) 作为...
MD5-Hash哈希值计算工具
将字符串哈希成数字的几种经典的方法:其中的一部分 #ifndef INCLUDE_GENERALHASHFUNCTION_C_H #define INCLUDE_GENERALHASHFUNCTION_C_H #include typedef unsigned int (*hash_function)(char*, unsigned int...
大数据结构课程设计--哈希表实验报告材料
NOI导刊--基础数据结构--哈希、并查集--江涛 内含----讲义,代码
数据结构课程设计--哈希表实验报告.doc
MD5-Hash哈希值计算工具是一个MD5码以及哈希值计算工具,计算的类型包括有MD5、SHA1、CRC32,支持字符串和文件的计算。操作上算是相当的简单:字符串计算的话,只要输入到它的文本框,下面就会自动显示出对应的MD5码...
数据结构--哈希表的构造与设计.doc
一个使用多种常见哈希算法来哈希字符串、文件和网络资源的小小的工具
Kali Linux-findmyhash命令-破解哈希值.docx
node-shorthash, 获取字符串的唯一简短哈希 shorthash从长字符串( utf8格式) 生成短。alpha数。undecryptable和惟一散列id的小型 node.js 模块。如果要将字符串加密,如电影名称或者者人名。唯一和url友好的,请使用...
用C语言实现常用的字符串哈希函数,比如RSHash、JSHash、PJWHash、FNVHash等
基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发...
【源码】【数据结构几个实例】【约瑟夫环问题--停车场管理--二叉树的建立与遍历--图遍历--哈希表设计】
密码学 SHA-1 哈希算法 JAVA,速度不是很好,建议读者用C语言来写。