杭电1501 Zipper
2015-06-19 11:38
274 查看
Problem Description
Given three strings, you are to determine whether the third string can be formed by combining the characters in the first two strings. The first two strings can be mixed arbitrarily, but each must stay in its original order.
For example, consider forming "tcraete" from "cat" and "tree":
String A: cat
String B: tree
String C: tcraete
As you can see, we can form the third string by alternating characters from the two strings. As a second example, consider forming "catrtee" from "cat" and "tree":
String A: cat
String B: tree
String C: catrtee
Finally, notice that it is impossible to form "cttaree" from "cat" and "tree".
Input
The first line of input contains a single positive integer from 1 through 1000. It represents the number of data sets to follow. The processing for each data set is identical. The data sets appear on the following lines, one data
set per line.
For each data set, the line of input consists of three strings, separated by a single space. All strings are composed of upper and lower case letters only. The length of the third string is always the sum of the lengths of the first two strings. The first two
strings will have lengths between 1 and 200 characters, inclusive.
Output
For each data set, print:
Data set n: yes
if the third string can be formed from the first two, or
Data set n: no
if it cannot. Of course n should be replaced by the data set number. See the sample output below for an example.
Sample Input
Sample Output
Given three strings, you are to determine whether the third string can be formed by combining the characters in the first two strings. The first two strings can be mixed arbitrarily, but each must stay in its original order.
For example, consider forming "tcraete" from "cat" and "tree":
String A: cat
String B: tree
String C: tcraete
As you can see, we can form the third string by alternating characters from the two strings. As a second example, consider forming "catrtee" from "cat" and "tree":
String A: cat
String B: tree
String C: catrtee
Finally, notice that it is impossible to form "cttaree" from "cat" and "tree".
Input
The first line of input contains a single positive integer from 1 through 1000. It represents the number of data sets to follow. The processing for each data set is identical. The data sets appear on the following lines, one data
set per line.
For each data set, the line of input consists of three strings, separated by a single space. All strings are composed of upper and lower case letters only. The length of the third string is always the sum of the lengths of the first two strings. The first two
strings will have lengths between 1 and 200 characters, inclusive.
Output
For each data set, print:
Data set n: yes
if the third string can be formed from the first two, or
Data set n: no
if it cannot. Of course n should be replaced by the data set number. See the sample output below for an example.
Sample Input
3 cat tree tcraete cat tree catrtee cat tree cttaree
Sample Output
Data set 1: yes Data set 2: yes Data set 3: no
#include<stdio.h> #include<string.h> #define max 205 int flag=0; char a[max],b[max],c[max+max]; bool visit[max][max]={0}; void DFS(int i,int j,int k) { if(c[k]=='\0') { flag=1; return; } if(visit[i][j]) { return; } visit[i][j]=1; if(a[i]!='\0'&&a[i]==c[k]) { DFS(i+1,j,k+1); } if(b[j]!='\0'&&b[j]==c[k]) { DFS(i,j+1,k+1); } } int main() { int t,num=0; scanf("%d",&t); while(t--) { flag=0; memset(visit,0,sizeof(visit)); scanf("%s %s %s",a,b,c); DFS(0,0,0); if(flag) printf("Data set %d: yes\n",++num); else printf("Data set %d: no\n",++num); } return 0; }
相关文章推荐
- java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得
- Android面试准备复习之Android知识点大扫描 .
- oncopy和onpaste
- json 串排序 遇到的问题 安照日期倒序 等解决 (按照里面日期字段倒序)
- linux 命令——51 lsof(转)
- 软件需求规格书
- Linux日志:rsyslog及loganalyzer(一)
- Python学习之库引用错误
- 责任链模式
- 转:玩转HTML5移动页面(动效篇)
- 测试计划
- 六款值得推荐的android(安卓)开源框架简介
- 推荐两个查找rpm包的网站
- C实现 LeetCode->Merge Two Sorted Lists (双指针大法)(单链表swap合并反转)
- 理解Linux系统中的load average(图文版)
- eclipse配置自动生成ndk javah文件
- /var/spool/clientmqueue目录清理
- java中使用list.remove需要注意的问题
- Spring技术内幕——Spring Framework的IOC容器实现(五)(大结局)
- 暴力/进制转换 Codeforces Round #308 (Div. 2) C. Vanya and Scales