加密术

来源:互联网 发布:java 解析器模式 编辑:程序博客网 时间:2024/05/01 13:57

加密术

Time Limit: 1000MS Memory limit: 65536K

题目描述

加密技术是一种常用的安全保密手段,利用加密技术可以把重要的数据变成经过加密变成乱码传送,到达目的地后再利用解密手段还原。现在我们发明了一种新的加密技术,即通过在一个字符串的任意位置插入若干个随机生成的字符(‘a’~’z’或’A’~’Z’)对该字符串加密。
我们想要申请专利,但在这之前,需要做大量的检测。所以有必要编写一个程序判断加密后的字符串经过解密是否是加密前的字符串,即从加密后的字符串中删除若干个字符后剩下的字符串是否可以拼接成加密前的字符串。Can you help us ?

输入

输入包含多组,每组输入两个串(只包含大小写字母)S,T,中间用空格分开。S和T的长度不超过100000。

输出

对于每组输入,如果加密后的字符串解密后与加密前的字符串相同输出“Yes”,否则输出“No”。

示例输入

string  StrstringHELLO  sdhfHqEiweqLbnLOqwertynomatter  nsomatstrfriend  FriEendly

示例输出

YesYesNoNo

提示

 

来源

pyn

示例程序

  1. #include<stdio.h>  
  2. #include<string.h>  
  3. int main()  
  4. {  
  5.     char str[100000],str1[100000];  
  6.     int n,i,m,p,h,l;  
  7.     while(scanf("%s %s",&str1,&str)!=EOF)  
  8.     {  
  9.         l = 0;  
  10.         p=0;  
  11.         l = strlen(str);  
  12.         p = strlen(str1);  
  13.         m = 0;  
  14.         for(h=0;h<l;h++)  
  15.         {  
  16.             if(str1[m] == str[h])  
  17.             {  
  18.                 m++;  
  19.                 if(m == p)  
  20.         {  
  21.             printf("Yes\n");  
  22.                 break;  
  23.         }  
  24.               
  25.             }  
  26.         }  
  27.           
  28.     if(m<p)  
  29.         {  
  30.             printf("No\n");  
  31.         }  
  32.     }  
  33.     return 0;  
  34. }  
  35.   

0 0
原创粉丝点击