写一个程序判断字符串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.

最新文章

  1. 多行文本溢出显示省略号(…) text-overflow: ellipsis
  2. spark streaming 接收 kafka 数据java代码WordCount示例
  3. android 自定义View Caused by: java.lang.ClassNotFoundException: Didn&#39;t find class
  4. CentOS6.5 安装 jdk1.7
  5. Runloop之个人理解
  6. 13.第一个只出现一次的字符[FindFirstNotRepeatingChar]
  7. c++ 派生类向基类转换的可访问性
  8. Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
  9. ASP.net WebAPI 上传图片
  10. 【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之三】动手绑定自己定义类至Lua
  11. 解决Nuget:https://api.nuget.org/v3/index.json 访问不了的问题
  12. 反射应用--IOC和AOP
  13. 拷贝本地文件到docker容器
  14. Apollo的Oracle适配改动
  15. hashCode()方法对HashMap的性能影响
  16. php中获取当前时间
  17. qml: QtCharts模块的使用(基本配置)------&lt;一&gt;
  18. 连续子数组和的最大值plus
  19. MapReduce核心 - - - Shuffle
  20. AIX平台安装Oracle11gR2数据库

热门文章

  1. 一个令人困惑的低效SQL
  2. Mysql不区分大小写
  3. [转载]C# 多选功能(checkedListBox控件)
  4. x86, x86-64, i386, IA32, IA64...
  5. Java异常处理之throws抛出异常
  6. 6个常见的 PHP 安全性攻击
  7. C# 4.0 新特性之并行运算(Parallel)
  8. Form 重置记录编号(app_record.for_all_record)
  9. poj2817WordStack(状压)
  10. bzoj1143 2718