UVA_10340 - All in All

来源:互联网 发布:php aes 256 ecb解密 编辑:程序博客网 时间:2024/04/29 11:10

Problem E

All in All

Input: standard input

Output: standard output

Time Limit: 2 seconds

Memory Limit: 32 MB

You have devised a new encryption technique which encodes a message by inserting between its characters randomly generated strings in a clever way. Because of pending patent issues we will not discuss in detail how the strings are generated and inserted into the original message. To validate your method, however, it is necessary to write a program that checks if the message is really encoded in the final string.

Given two strings s and t, you have to decide whether s is a subsequence oft, i.e. if you can remove characters from t such that the concatenation of the remaining characters iss.

Input Specification

The input contains several testcases. Each is specified by two strings s, t of alphanumeric ASCII characters separated by whitespace. Input is terminated by EOF.

Output Specification

For each test case output, if s is a subsequence of t.

Sample Input

sequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatter

Sample Output

Yes
No
Yes
No

 

题意:

给定字符串s和t,判定是否可以从t中删除0个或者任意个字符(保证其他字符顺序不变),得到s

解题思路:

设置2个指针分别指向s和t,依次遍历t, 看能否依次“生成“s中每个字符,如果每个字符都可以提取出,即可得到s

代码如下:

#include<iostream>#include<cstdio>#include<string>using namespace std;bool IsSubstr(string s, string t){    int i,j;    int len1,len2,ok = 0;    len1 = s.length();len2 = t.length();    for(i=0,j=0;i<len2;i++)    {        if(t[i]==s[j]) j++;        if(j==len1) { ok = 1; break; }     }    if(ok) return true;    else return false;}int main(){    //freopen("10340.txt","r",stdin);    string s,t;    while(cin>>s>>t)    {        if(IsSubstr(s,t)) cout<<"Yes"<<endl;        else cout<<"No"<<endl;    }    return 0;}
0 0
原创粉丝点击