当前位置: 首页 > article >正文

XTU OJ 1337 Clockwise Or Unclokwise

题目描述

我们把一个字符串A按圆圈排列,你可以从圆圈上任意一个字符开始,顺时钟或者逆时钟读若干个字符,请问是否能得到给定的字符串B?比如字符串A="abcde",我们从第2个字符开始,逆时钟读3个字符,可以得到字符串"bae"。

输入

第一行是样例数T(1≤T≤100)。 每个样例的占两行,第一行是字符串A,第二行是字符串B,所有字符串都只含小写英文字母,且长度不超过100个字符。

输出

每行输出一个样例的结果,如果可以输出"Yes",否则输出"No"。

样例输入

5
abcde
cbae
abcde
deab
abc
abcabc
abcb
babcba
ab
aa

样例输出

Yes
Yes
Yes
Yes
No

 快要期末考试了,重新复习谢大OJ时有了一些不同的思路,发出来和同学们一起探讨

解题思路:破环成链 + 字符串匹配;

当我们遇到一个环,例如一个三角形abc,那么我们添加一个链ABCABC,你就会发现,这个环上能读到的字母在这个链上也能读到,所以我们这道题就可以转化成链来进行字符串匹配。

这个题有特殊的点是子串长度可能比原字符串要长,例如样例abc和abcabc,所以我们不能只扩一倍,我们可以把这个链扩到200。

AC代码:

#include <stdio.h>
#include <string.h>char str[210];
char p[101];
char temp[101];int main()
{int T;scanf("%d",&T);while(T--){scanf("%s",temp);//读取字符串scanf("%s",p);//读取模板串int lenS = strlen(temp);int lenP = strlen(p);for(int i = 0;i < 201;i++) str[i] = temp[i % lenS];//破环成链int maxLen = 200;//开始匹配 顺时针int isMatch = 0;for(int i = 0,j = 0;i < maxLen;){int t = i;while(str[i] == p[j] && j < lenP){i++;j++;}if(j == lenP){printf("Yes\n");isMatch = 1;break;}else {i = t + 1;j = 0;}}//逆时针if(isMatch == 0){for(int i = maxLen - 1,j = 0;i >= 0;){int t = i;while(str[i] == p[j] && j < lenP){i--;j++;}if(j == lenP){printf("Yes\n");isMatch = 1;break;}else{i = t - 1;j = 0;}}}if(isMatch == 0) printf("No\n");}return 0;
}

http://www.lryc.cn/news/2414980.html

相关文章:

  • 天堂2服务端服务器名字修改,如何制作L2J天堂2单机版源码服务端教程.doc
  • pthread_detach和pthread_cancel和pthread_euqal函数
  • 【原创】支持模糊匹配站内全文检索的技术方案
  • linux内核 安卓8.0,安卓8.0系统下载-安卓8.0系统刷机包下载 --pc6下载站
  • NC:预测阿尔茨海默病的个体进展轨迹
  • 微信8.0状态视频素材免费下载
  • 英文常见姓氏列表
  • 基于java实现的计算机考试系统
  • 即时改变个性祝福网页源码
  • HTML入门(详细)
  • TCP,SSL以及HTTPS的连接建立过程详解
  • Head First Java(第2版)中文版.pdf免费资源下载链接,Head First Java第二版中文版.pdf
  • WinInet说明
  • android : 属性动画
  • #include
  • 工程型软件项目的配置管理实例 (二) ——配置管理双枪将VSS+SOS(上)
  • [FPGA学习]第一部分:FPGA基础知识
  • 基于java+ssm+jsp民宿预订管理系统设计与实现+vue(源码+lw+部署文档+讲解等)
  • 神经质的实质与治疗--神经质的分类
  • 使用Sysbench测试统信UOS或麒麟KYLINOS的CPU性能
  • Navisworks软件二次开发:二次开发中的性能优化技巧
  • 【html网页设计】 绿色的在线教育平台网站响应式企业网站模板
  • urp综合教务系统 php 课表,URP综合教务系统教师录入成绩指南
  • 开源漏洞扫描工具:安全卫士的利器
  • asp毕业设计——基于asp+access的房产信息管理系统设计与实现(毕业论文+程序源码)——房产信息管理系统
  • 神仙级Python入门教程,从入门到精通,看这一篇就够了!!!
  • 聚合支付之流程概述
  • 这个JavaScript基础教程你绝对是值得看的
  • 以太网,令牌网,FDDI,ATM,WLAN的区别
  • 推荐文章:探索数据的灯塔——Amundsen数据发现与元数据引擎