写一个程序判断字符串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相关推荐

  1. android byte转string_Dig101 - Go之string那些事

    文章首发:公众号 newbmiao Dig101: dig more, simplified more and know more string这么简单,我想你也一直是这样想的,没关系,我也没打算把它 ...

  2. YOLOv4:目标检测(windows和Linux下Darknet 版本)实施

    YOLOv4:目标检测(windows和Linux下Darknet 版本)实施 YOLOv4 - Neural Networks for Object Detection (Windows and L ...

  3. 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 ...

  4. faster_rcnn c++版本的 caffe 封装,动态库(2)

    摘要: 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ github上的代码链接,求给星星:) https:// ...

  5. 在Java中确定文件类型

    以编程方式确定文件的类型可能非常棘手,并且已经提出并实现了许多基于内容的文件标识方法. Java中有几种可用于检测文件类型的实现,其中大多数很大程度上或完全基于文件的扩展名. 这篇文章介绍了Java中 ...

  6. 智能门禁(6)---调用face++实现人脸检测

    人脸识别(一)调用face++实现人脸检测 2017年下半年以来,随着iPhoneX的人脸解锁功能把人脸识别这一黑科技带入大家的视野中之后,各种有关人脸识别功能的新闻和报道层出不穷.不仅是对普通群众来 ...

  7. 如何在单元格和循环中使用Microsoft Excel中的正则表达式(Regex)

    本文翻译自:How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops How can I use ...

  8. 【转载】超简单集成HMS ML Kit 人脸检测实现可爱2D贴纸

    文章目录 前言 场景 开发前准备 在项目级gradle里添加华为maven仓 在应用级的build.gradle里面加上SDK依赖 在AndroidManifest.xml文件里面申请相机.访问网络和 ...

  9. 基于OpenCV的人脸识别考勤系统(三)

    目录 六.百度智能云人脸库的创建 七.人脸识别SDK的导入 八.百度云平台的接入 六.百度智能云人脸库的创建 在百度智能云的人脸识别控制台中,申请领取免费资源,在进一步页面中我们选择领取全部免费接口即 ...

最新文章

  1. 啊,苏黎世联邦理工的拒信,最想去的学校啊
  2. 对EditText右边的图片进行监听
  3. JZOJ 5639. 【NOI2018模拟4.8】秘密袭击
  4. git ssh拉取代码_阿里云搭建git服务器
  5. MikroTik RouterOS x86最大内存只能支持2G
  6. 使用Response.Filter过滤非法词汇
  7. linux centos 6.3 下载,CentOS 6.3发布 附ISO下载地址
  8. zabbix安装部署_听说你的学习之路又停留在了“不会安装”
  9. [Tool] SourceTree初始化GitFlow遇到错误(git command not found)的解决方案
  10. python实现登录抓取_Python网页抓取、模拟登录
  11. mysql主键和聚簇索引_MYSQL:聚簇索引和主键索引
  12. 自定义优先队列的元素权重
  13. weblogic宕机crash问题解决分享
  14. 使用PPT编写一个序号抽奖
  15. 专门查英语单词的软件_查英语单词的软件
  16. python 图片文字转换成word_如何基于python把文字图片写入word文档
  17. 反垃圾邮件企业邮箱设置(TXT记录)
  18. 富有组织性是通往成功的必要习惯
  19. OpenGL的函数(GL)
  20. 实现Linux与windows文件互传

热门文章

  1. web架构设计经验分享 (转)
  2. ASP.NET Menu控件子菜单弹出导致页面出现滚动条问题
  3. 《深入浅出Mysql》學習筆記--日志
  4. 1分钟选好最合适你的JavaScript框架
  5. 产生BFC环境的几种方式
  6. JRoll 2 使用文档(史上最强大的下拉刷新,滚动,无限加载插件)
  7. mssql 数据库的备份与恢复
  8. 英国加密期货交易所增加比特币现金合约
  9. Windows Server 2016-活动目录NTP时间同步
  10. 企业 - php nginx memcache