字符串比较——加密术
2014-02-15 17:02
225 查看
加密术
Time Limit: 1000MS Memory limit: 65536K
题目描述
加密技术是一种常用的安全保密手段,利用加密技术可以把重要的数据变成经过加密变成乱码传送,到达目的地后再利用解密手段还原。现在我们发明了一种新的加密技术,即通过在一个字符串的任意位置插入若干个随机生成的字符(‘a’~’z’或’A’~’Z’)对该字符串加密。我们想要申请专利,但在这之前,需要做大量的检测。所以有必要编写一个程序判断加密后的字符串经过解密是否是加密前的字符串,即从加密后的字符串中删除若干个字符后剩下的字符串是否可以拼接成加密前的字符串。Can you help us ?
输入
输入包含多组,每组输入两个串(只包含大小写字母)S,T,中间用空格分开。S和T的长度不超过100000。
输出
对于每组输入,如果加密后的字符串解密后与加密前的字符串相同输出“Yes”,否则输出“No”。
示例输入
string Strstring HELLO sdhfHqEiweqLbnLOqwerty nomatter nsomatstr friend FriEendly
示例输出
Yes Yes No No
提示
#include<stdio.h> #include<string.h> #include<stdlib.h> char st1[100009]; char st2[100009]; int next[100009]; int main() { int i,j,k,l1,l2; while(scanf("%s%s",&st1,&st2)!=EOF) { l1 = strlen(st1); i = 0;j = -1;next[0] = -1; while(st1[i]!= '\0') { if(j == -1 || st1[i] == st1[j]) { i++; j++; next[i] = j; } else j = next[j]; } i = 0;j = -1; while(st2[i] != '\0') { if(j == -1 ||st2[i] == st1[j]) { i++; j++; } else j = next[j]; if(j == l1) { printf("Yes\n"); break; } } if(j < l1) printf("No\n"); } return 0; }
相关文章推荐
- java字符串比较的迷惑(equals,“==”的差异)
- 库函数实现之字符串比较
- stringBuffer的使用及字符串比较的区别
- Mybatis if test无效的原因(字符串比较)
- Java字符串比较(equals)
- java中两字符串比较--compareTo方法
- mysql 的解决字符串比较的时候区分大小写
- php数字与字符串比较时的注意事项
- object_c字符串比较之:版本号
- 第十六周—C语言 (字符串比较—不使用strcat函数)
- 字符串比较的精妙算法
- object_c字符串比较之:版本号 .
- 字符串比较——compareTo函数
- [shell基础]——整数比较;字符串比较;文件测试;逻辑测试符
- PHP基础之字符串比较
- js字符串比较的问题
- 字符串比较——最简单的方法(有点水)
- 性能测试之字符串比较; C、C++和JAVA
- 字符串比较的一个问题
- 请教:如何设置Lable中的字符间距和行距!前提是不改变字体字号.