Zipper
来源:互联网 发布:冰心和林徽因知乎 编辑:程序博客网 时间:2024/05/14 13:40
题意: 给出三个字符串,判断第三个字符串是否能由第一二个字符串中的字符构成,其中第一二个字符串中的字符次序不能乱。
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1501
思路:典型的搜索问题,用dfs,对一二个字符串进行搜索,定义一个标志数组,确定第一二个字符串序列的访问情况。
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <stack>#include <queue>#include <map>using namespace std;int vis[205][205];string str1,str2,str3;int len1,len2,len3,flag;void dfs(int a,int b, int c){ if(c == len3) //循环终止条件。 { flag = 1; return ; } if(vis[a][b]) //判定第一二个序列的访问情况 return ; vis[a][b] = 1; if(str1[a] == str3[c]) dfs(a+1,b,c+1); if(str2[b] == str3[c]) dfs(a,b+1,c+1);}int main(){ int t,k=0; cin >> t; while(t--) { cin >> str1 >> str2 >> str3; cout << "Data set " << ++k << ": "; len1 = str1.size(); len2 = str2.size(); len3 = str3.size(); memset(vis, 0,sizeof vis); if(len1 + len2 != len3) { cout << "no"<< endl; continue; } else { flag = 0; dfs(0,0,0); } if(flag) cout << "yes" << endl; else cout << "no" << endl; } return 0;}
0 0
- Zipper
- Zipper
- Zipper
- Zipper
- Zipper
- zipper
- Zipper
- Zipper
- Zipper
- Zipper
- Zipper
- 1010. Zipper
- POJ2192 Zipper
- Sicily1010. Zipper
- poj2192 - Zipper
- Zipper (p2192)
- 1501 Zipper
- poj2192 Zipper
- Android集成微信支付SDK
- 【POJ】[3641]Pseudoprime numbers
- Perl语言入门(04 数组+列表)
- php验证码不能显示的原因
- 新的一周,新的开始!
- Zipper
- PL/SQL连接Oracle64位的方法
- hibernate的事务处理机制以及flush方法的作用
- 数据分析应该要避免的6个错误
- NSDate
- React Native For Android(Windows )配置
- 串口通讯的python模块——pySerial
- 省市区代码
- 小白学Tensorflow之简单神经网络