uva 10340 子序列
2016-01-09 20:27
288 查看
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 of t, i.e. if you can
remove characters from t such that the concatenation of the remaining characters is s.
Input
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
For each test case output, if s is a subsequence of t.
Sample Input
sequence subsequence person compression VERDI vivaVittorioEmanueleReDiItalia caseDoesMatter CaseDoesMatter
这道题比较简单 不在描述
下面是源码
#include<stdio.h>
#include<string.h>
#define max 1000
int main()
{
int i,j,n,m,k;
char s[max]={'\0'},t[max]={'\0'};
scanf("%s %s",&s,&t);
n=strlen(s);
m=strlen(t);
if(n>m)
{
printf("No\n");
return 0;
}
for(j=0;j<m;j++)
{
if(m-j<n)
{
printf("No");
return 0;
}
i=0;
k=j;
while(k<m)
{
if(s[i]==t[k])
{
if(i==n-1)
{
printf("Yes\n");
return 0;
}
i++;
}
k++;
}
}
return 0;
}
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 of t, i.e. if you can
remove characters from t such that the concatenation of the remaining characters is s.
Input
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
For each test case output, if s is a subsequence of t.
Sample Input
sequence subsequence person compression VERDI vivaVittorioEmanueleReDiItalia caseDoesMatter CaseDoesMatter
这道题比较简单 不在描述
下面是源码
#include<stdio.h>
#include<string.h>
#define max 1000
int main()
{
int i,j,n,m,k;
char s[max]={'\0'},t[max]={'\0'};
scanf("%s %s",&s,&t);
n=strlen(s);
m=strlen(t);
if(n>m)
{
printf("No\n");
return 0;
}
for(j=0;j<m;j++)
{
if(m-j<n)
{
printf("No");
return 0;
}
i=0;
k=j;
while(k<m)
{
if(s[i]==t[k])
{
if(i==n-1)
{
printf("Yes\n");
return 0;
}
i++;
}
k++;
}
}
return 0;
}
相关文章推荐
- 《离散数学》双语专业词汇表
- JSP复习----html部分
- 贝叶斯信念网络和马尔科夫链有什么区别
- lua里面求int数组的union,diff,inter,distinct 方法实现
- gulp完全开发指南 => 快来换掉你的Grunt吧
- 谈谈kvc和kvo
- 超类、子类、主程序执行终极步骤(二)
- iOS防止消息转发的crash
- 表达式2叉树(前序,中序,后序)的非递归实现_优化1
- Json解析小案例
- 不带参数的宏定义与带参数的宏定义
- sql概要
- linux下tar与rpm具体指令(安装)
- UI基础 - 简易的加法计算器实现
- 【UVa】[1225]Digit Counting
- 社保系列8《送检測试项》
- javascript类型系统之String
- 机架和电机的选择
- C++学习之Pair
- phabricator在mac上的搭建