写一个程序判断字符串A是否为其他两个字符串的组合,组合过程中其他两个字符串的相对顺序不能被破坏。

  举例说明:abc和def可以组成字符串adebcf,但不能组成aefbcd,因为def的相对顺序已经被破坏。本题直接从string A入手loop配对即可,代码如下。

 /**************************************
Author:Zhou You
Time:2014.09.10
**************************************/
#include <iostream>
#include <string>
#include <cstdio> using namespace std; bool IsCombinedString(const string &str1,const string &str2,const string &str3)
{
if(str3.length() != str1.length() + str2.length()) return false; unsigned index_str1 = ,index_str2 = ,index_str3 = ;
unsigned str1_length = str1.length(),str2_length = str2.length(),
str3_length = str3.length();
while(index_str3<str3_length){
if(index_str1>=str1_length){
if(str2[index_str2]!=str3[index_str3]){
return false;
}else{
++index_str2;++index_str3;
}
}else if(index_str2>=str2_length){
if(str1[index_str1]!=str3[index_str3]){
return false;
}else{
++index_str1;++index_str3;
}
}else if(str1[index_str1]==str3[index_str3]){
++index_str1;++index_str3;
}else if(str2[index_str2]==str3[index_str3]){
++index_str2;++index_str3;
}else return false;
}
} void Solve()
{
string str1,str2,str3;
cin>>str1>>str2>>str3;
if(IsCombinedString(str1,str2,str3)) cout<<"Yes.";
else cout<<"No.";
} int main()
{
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
unsigned case_num = ;
cin>>case_num; for(unsigned i=;i<=case_num;++i){
cout<<"Case #"<<i<<" ";
Solve();
cout<<endl;
} return ;
}

  输入文件中的case如下所示。

3
abc def adbecf
af br arfb
abc def abcdef

  输出文件结果为。

Case #1 Yes.
Case #2 No.
Case #3 Yes.

Detect combined string的更多相关文章

  1. Sphinx 2.2.11-release reference manual

    1. Introduction 1.1. About 1.2. Sphinx features 1.3. Where to get Sphinx 1.4. License 1.5. Credits 1 ...

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

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

  3. ajax 获取 mysql 保存的图片显示

    function ajax_GetFirstData(data) { var len = data.Data.length; if (len > 0) { $("#jquery_jpl ...

  4. java 开发 face++ 人脸特征识别系统

    首先要在 face++ 注册一个账号,并且创建一个应用,拿到 api key 和 api secret: 下载 java 接入工具,一个 jar 包:https://github.com/FacePl ...

  5. 做一次面向对象的体操:将JSON字符串转换为嵌套对象的一种方法

    背景与问题 在 <一个略复杂的数据映射聚合例子及代码重构> 一文中,将一个JSON字符串转成了所需要的订单信息Map.尽管做了代码重构和配置化,过程式的代码仍然显得晦涩难懂,并且客户端使用 ...

  6. SQL注入漏洞解决方法

    本文只指针编码层次的SQL注入漏洞解决方法,例子代码是以java为主. 1,参数化的预编译查询语句 不安全例子 String query = "SELECT account_balance ...

  7. BZOJ4713 迷失的字符串

    分析 首先考虑只有一个串时的做法,可以进行背包dp,记\(f(i,j)\)表示从\(i\)的子树中某点出发到\(i\)能否匹配字符串的\(1 \dots j\)位且\(i\)与\(j\)匹配.同时记\ ...

  8. Nginx基础配置指令

    nginx.conf文件的结构 ... #全局块 events{ #events块 ... } http{ #http块 ... #http全局块 server{ #server块 ... #serv ...

  9. nginx 服务器配置文件指令

    localtion 配置        语法结构: location [ =  ~  ~* ^~ ] uri{ ... }        uri 变量是带匹配的请求字符, 可以是不含正则表达的字符串, ...

随机推荐

  1. 在Windowx下创建以点开头的.hatccess文件

    转自:在Windowx下创建以点开头的.hatccess文件 Windows有些目录名是不能创建的,有一些文件按照常规方式也是不能创建的,如在Windows下创建文件夹名为con的目录就不行,在win ...

  2. 软件测试 -- alpha测试和beta测试的区别

    alpha测试是在用户组织模拟软件系统的运行环境下的一种验收测试,由用户或第三方测试公司进行的测试,模拟各类用户行为对即将面市的软件产品进行测试,试图发现并修改错误. Beta测试是用户公司组织各方面 ...

  3. 一步步学习NHibernate(3)——NHibernate增删改查

    请注明转载地址:http://www.cnblogs.com/arhat 在上一章中,我们配置了以下NHibernate的运行环境, 并介绍了NHibernate的中两个非常中重要的接口"I ...

  4. ASP.NET MVC Spring.NET 整合

    请注明转载地址:http://www.cnblogs.com/arhat 在整合这三个技术之前,首先得说明一下整合的步骤,俗话说汗要一口一口吃,事要一件一件做.同理这个三个技术也是.那么在整合之前,需 ...

  5. NOI 2015 T1 等式

    我有 n 个式子 对于每个式子,要么是 xi = xj 的形式,要么是 xi <> xj 的形式. 现在我给出这 n 个式子,你要告诉我,这 n 个式子是否可能同时成立. [输入格式] 每 ...

  6. hdu 1560 DNA sequence(搜索)

    http://acm.hdu.edu.cn/showproblem.php?pid=1560 DNA sequence Time Limit: 15000/5000 MS (Java/Others)  ...

  7. maven编译的时候排除junit测试类

    maven项目中使用junit进行单元测试,在进行编译的时候,可以通过2种方式排除test测试类的编译. 有2种方式 : 使用命令的时候带上参数 mvn install -Dmaven.test.sk ...

  8. 如何用JavaScript在浏览器端获取图片的原始尺寸大小?

    var img = $("#img_id"); // Get my img elem var pic_real_width, pic_real_height; $("&l ...

  9. js点击图片显示在左边大图

    <div class="imgbox cf">    <img src="temp/pic2.jpg" alt="" cl ...

  10. WP8教程

    http://www.maiziedu.com/courses-list?technology_category=6