URAL 1732 . Ministry of Truth KMP
来源:互联网 发布:学生如何投资 知乎 编辑:程序博客网 时间:2024/05/02 20:20
题目来源:URAL 1732 . Ministry of Truth
题意:把第一个字符串处理一下 变成第二个 不要的字符改成下划线 空格不能改
思路:对第二个字符串单词分割 得到每一个单词后从第一个字符串中匹配 匹配成功 记录当前匹配的位置 然后下一个单词从x+2处在匹配 知道所有的单词都被匹配到
鄙视自己没想清楚写了半天 最后发现题目意思都错了
改了很多 最后代码和原来的完全不一样了 以后想清楚在写
样例
abcd和ab d输出ab_c
abcx abcxx abcxx和abc abc abc x 输出abc_ abc__ abc_x
hhahaphapphappyhappyhh和hap happ hh输出___hap____happ______hh
lossiblossible和lossible输出______lossible
a b c和a输出a _ _
#include <cstdio>#include <cstring>using namespace std;const int maxn = 100010;char a[maxn], b[maxn], c[maxn];int f[maxn];void get_fail(char *p){f[0] = f[1] = 0;int n = strlen(p);for(int i = 1; i < n; i++){int j = f[i];while(j && p[i] != p[j])j = f[j];if(p[i] == p[j])f[i+1] = j+1;elsef[i+1] = 0;}}int find(char* a, char* b, int s){int j = 0;int m = strlen(b);int i;for(i = s; a[i] != 0; i++){while(j && a[i] != b[j])j = f[j];if(a[i] == b[j])j++;if(j == m){int k = s-1;if(k < 0)k = 0;for(; k <= i-m; k++){if(a[k] != ' ')a[k] = '_';}//for(int k = i+1; a[k] != ' ' && a[k] != 0; k++)//a[k] = '_';return i;}}return -1;}int main(){while(gets(a)){int n = strlen(a);gets(b);char* p = strtok(b, " ");get_fail(p);int i = 0;int flag = 0;while(p && i < n) {int x = find(a, p, i);if(x == -1){flag = 1;break;}i = x+2;p = strtok(NULL, " ");if(p)get_fail(p);}i--;for( ; i < n; i++)if(a[i] != ' ')a[i] = '_';if(flag)puts("I HAVE FAILED!!!");elseputs(a);}return 0;}
0 0
- URAL - 1732 - Ministry of Truth(KMP)
- URAL 1732 . Ministry of Truth KMP
- URAL 1732 Ministry of Truth KMP
- URAL 1732 Ministry of Truth
- Ural 1732. Ministry of Truth 多串匹配KMP
- Ural 1732. Ministry of Truth 多串匹配KMP
- Gym 100187L - Ministry of Truth
- ural 1029 Ministry
- ural 1029 Ministry
- ural 1029. Ministry (dp)
- ural 1029. Ministry
- URAL 1029 Ministry
- timus 1029. Ministry URAL 解题报告
- URAL 1029 Ministry(记录路径的dp)
- Ministry
- Moment of Truth(关键时刻)
- 关键时刻(Moment Of Truth)
- What is the truth of life???
- 谁有PDF无需注册码的转换器啊
- java中的处理流
- Asp.net MVC4 使用了Bundle,引用的JS文件不能出现智能感知的解决之道
- OpenWrt增加软件包方法
- HomeKit如何改变物联网和智能家居?
- URAL 1732 . Ministry of Truth KMP
- ubuntu mysql 5.5 升级到5.6.16
- C++ 关键字typeid
- 删除mysql数据库
- Java中逻辑与,逻辑或,按位与,按位或的区分
- POJ 2480 Longge's problem 积性函数
- HTML 特殊字符
- 最长公共子串
- Jira和Confluence的权限管理