Detect combined string
写一个程序判断字符串A是否为其他两个字符串的组合,组合过程中其他两个字符串的相对顺序不能被破坏。
举例说明:abc和def可以组成字符串adebcf,但不能组成aefbcd,因为def的相对顺序已经被破坏。本题直接从string A入手loop配对即可,代码如下。
1 /************************************** 2 Author:Zhou You 3 Time:2014.09.10 4 **************************************/ 5 #include <iostream> 6 #include <string> 7 #include <cstdio> 8 9 using namespace std; 10 11 bool IsCombinedString(const string &str1,const string &str2,const string &str3) 12 { 13 if(str3.length() != str1.length() + str2.length()) return false; 14 15 unsigned index_str1 = 0,index_str2 = 0,index_str3 = 0; 16 unsigned str1_length = str1.length(),str2_length = str2.length(), 17 str3_length = str3.length(); 18 while(index_str3<str3_length){ 19 if(index_str1>=str1_length){ 20 if(str2[index_str2]!=str3[index_str3]){ 21 return false; 22 }else{ 23 ++index_str2;++index_str3; 24 } 25 }else if(index_str2>=str2_length){ 26 if(str1[index_str1]!=str3[index_str3]){ 27 return false; 28 }else{ 29 ++index_str1;++index_str3; 30 } 31 }else if(str1[index_str1]==str3[index_str3]){ 32 ++index_str1;++index_str3; 33 }else if(str2[index_str2]==str3[index_str3]){ 34 ++index_str2;++index_str3; 35 }else return false; 36 } 37 } 38 39 void Solve() 40 { 41 string str1,str2,str3; 42 cin>>str1>>str2>>str3; 43 if(IsCombinedString(str1,str2,str3)) cout<<"Yes."; 44 else cout<<"No."; 45 } 46 47 int main() 48 { 49 freopen("data.in","r",stdin); 50 freopen("data.out","w",stdout); 51 unsigned case_num = 0; 52 cin>>case_num; 53 54 for(unsigned i=1;i<=case_num;++i){ 55 cout<<"Case #"<<i<<" "; 56 Solve(); 57 cout<<endl; 58 } 59 60 return 0; 61 }
输入文件中的case如下所示。
3
abc def adbecf
af br arfb
abc def abcdef
输出文件结果为。
Case #1 Yes.
Case #2 No.
Case #3 Yes.
转载于:https://www.cnblogs.com/zhouyoulie/p/3964728.html
Detect combined string相关推荐
- android byte转string_Dig101 - Go之string那些事
文章首发:公众号 newbmiao Dig101: dig more, simplified more and know more string这么简单,我想你也一直是这样想的,没关系,我也没打算把它 ...
- YOLOv4:目标检测(windows和Linux下Darknet 版本)实施
YOLOv4:目标检测(windows和Linux下Darknet 版本)实施 YOLOv4 - Neural Networks for Object Detection (Windows and L ...
- Yolo-v3 and Yolo-v2 for Windows and Linux 翻译
Yolo-v3 and Yolo-v2 for Windows and Linux(适用于Windows和Linux的Yolo-v3和Yolo-v2) (neural network for obje ...
- faster_rcnn c++版本的 caffe 封装,动态库(2)
摘要: 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ github上的代码链接,求给星星:) https:// ...
- 在Java中确定文件类型
以编程方式确定文件的类型可能非常棘手,并且已经提出并实现了许多基于内容的文件标识方法. Java中有几种可用于检测文件类型的实现,其中大多数很大程度上或完全基于文件的扩展名. 这篇文章介绍了Java中 ...
- 智能门禁(6)---调用face++实现人脸检测
人脸识别(一)调用face++实现人脸检测 2017年下半年以来,随着iPhoneX的人脸解锁功能把人脸识别这一黑科技带入大家的视野中之后,各种有关人脸识别功能的新闻和报道层出不穷.不仅是对普通群众来 ...
- 如何在单元格和循环中使用Microsoft Excel中的正则表达式(Regex)
本文翻译自:How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops How can I use ...
- 【转载】超简单集成HMS ML Kit 人脸检测实现可爱2D贴纸
文章目录 前言 场景 开发前准备 在项目级gradle里添加华为maven仓 在应用级的build.gradle里面加上SDK依赖 在AndroidManifest.xml文件里面申请相机.访问网络和 ...
- 基于OpenCV的人脸识别考勤系统(三)
目录 六.百度智能云人脸库的创建 七.人脸识别SDK的导入 八.百度云平台的接入 六.百度智能云人脸库的创建 在百度智能云的人脸识别控制台中,申请领取免费资源,在进一步页面中我们选择领取全部免费接口即 ...
最新文章
- 啊,苏黎世联邦理工的拒信,最想去的学校啊
- 对EditText右边的图片进行监听
- JZOJ 5639. 【NOI2018模拟4.8】秘密袭击
- git ssh拉取代码_阿里云搭建git服务器
- MikroTik RouterOS x86最大内存只能支持2G
- 使用Response.Filter过滤非法词汇
- linux centos 6.3 下载,CentOS 6.3发布 附ISO下载地址
- zabbix安装部署_听说你的学习之路又停留在了“不会安装”
- [Tool] SourceTree初始化GitFlow遇到错误(git command not found)的解决方案
- python实现登录抓取_Python网页抓取、模拟登录
- mysql主键和聚簇索引_MYSQL:聚簇索引和主键索引
- 自定义优先队列的元素权重
- weblogic宕机crash问题解决分享
- 使用PPT编写一个序号抽奖
- 专门查英语单词的软件_查英语单词的软件
- python 图片文字转换成word_如何基于python把文字图片写入word文档
- 反垃圾邮件企业邮箱设置(TXT记录)
- 富有组织性是通往成功的必要习惯
- OpenGL的函数(GL)
- 实现Linux与windows文件互传