http://poj.org/problem?id=3087

题意:每组3个串,前两个串长度为n,第三个串长度为2*n,依次从第二个串(s2)中取一个字符,从第一个串(s1)中取一个字符,......,直至取完,如果组成的新串(s)和第三个字符串相同则输出组数和匹配成功的次数,如果不相同,则将s串的前n个字符作为s1,后n个字符作为s2,接着匹配,如果永远匹配不成s,则输出组数和-1。

思路:简单的字符串模拟,关键是判断输出-1的情况,如果一直匹配与 s不同,但与原来的strcat(s1,s2)相同,则证明无法匹配成功,因为此时字符串已经匹配了一个周期。

 #include <stdio.h>
#include <string.h>
int main()
{
char s1[],s2[],s[],str[],ss[];
int t,n,o = ;
scanf("%d",&t);
while(t--)
{
o++;
int k ,cnt = ;
scanf("%d",&n);
scanf("%s%s",s1,s2);
strcpy(ss,s1);
strcat(ss,s2);
scanf("%s",str);
while()
{
cnt++;
k = ;
for (int i = ; i < n; i ++)
{
s[k++] = s2[i];
s[k++] = s1[i];
}
s[k] ='\0';
if (!strcmp(s,str))
{
printf("%d %d\n",o,cnt);
break;
}
else
{
int i,j = ;
for (i = ; i < n; i ++)
s1[i] = s[i];
for ( ; i < *n; i ++)
s2[j++] = s[i];
s1[i] = '\0';
s2[j] = '\0';
if (!strcmp(s,ss))
{
printf("%d -1\n",o);
break;
}
}
} }
return ;
}

最新文章

  1. BZOJ 2079: [Poi2010]Guilds
  2. js返回上一页并刷新的多种实现方法
  3. java基础-控制流语句
  4. ajax-1:基本实现原理
  5. iOS coreData使用遇到的问题
  6. 思科(Cisco)路由器策略路由配置详解
  7. polling轮询和comet
  8. KISSY 库 demo
  9. 第一册:lesson 115.
  10. linux 安装ssh以及ssh用法与免密登录
  11. GDI+_SavePic
  12. chromium浏览器开发系列第三篇:chromium源码目录结构
  13. 一些常用的opencv函数
  14. xshell5 Linux 上传下载文件
  15. CRM 安装过程 AD+SQL+CRM
  16. std::shared_ptr之deleter的巧妙应用
  17. Python 各种编码相互转化 (目前只有Unicode utf-8)
  18. 实用爬虫-02-爬虫真正使用代理 ip
  19. 阿里八八——预则立&amp;&amp;他山之石
  20. 每日英语:Yahoo&#39;s Rally: Made in China

热门文章

  1. 3星|《商业周刊中文版:2017商业人物(下)》:酒店才应该是出行住宿的最佳选择,Airbnb不是
  2. WPF中的两个绑定场景
  3. appium 使用send_keys方法时报错: driver.find_element_by_id(&quot;com.hmkx.zgjkj:id/layout_search_bar_input&quot;).send_keys(&quot;123&quot;)
  4. mysql动态执行sql批量删除数据
  5. Lua中返回值的丢失问题
  6. wget扒网站
  7. Django基础配置
  8. BZOJ 1230 Usaco2008 Nov 开关灯
  9. c# 异步执行
  10. 【codeforces 527D】Clique Problem