t2712:字符串移位包含问题
t2712:字符串移位包含问题
总时间限制:1000ms 内存限制:65536kB
描述
给定两个字符串s1和s2,要求判定其中一个字符串
是否是另一字符串通过循环移位后的子字符串。例如
CDAA是由AABCD两次移位后BCDAA的子串,而ABCD
与ACBD不能通过移位来得到其中一个字符串是另一个字
符串循环移位的子串。
输入
第一行有一个整数n,表示这组测试数据共有n行。
其后n行,每行由两个字符串组成。
输出
如果一个字符串是另一字符串通过循环移位的子串,
则返回true,否则返回false。
样例输入
2
AABCD CDAA
ABCD ACBD
样例输出
true
false
分析:据网上流传资料,假如两个串a和b满足:b是a循环移位后的一个子串,则b是串a&a的子串。当然,在这之前要满足LenA>=LenB,否则不科学不合理。
1 #include <stdio.h> 2 #include<string.h> 3 int main(int argc, char *argv[]) { 4 int n,i; 5 char a[10000],b[10000],t[20000]; 6 char *p; 7 8 scanf("%d",&n); 9 //printf("%d\n",n); 10 getchar(); 11 for(i=0;i<n;i++) 12 { 13 scanf("%s%s",a,b); 14 getchar(); 15 //printf("%s %s\n",a,b); 16 if(strlen(a)>=strlen(b)) 17 { 18 t[0]='\0'; 19 strcpy(t,a); 20 strcat(t,a); 21 p=NULL; 22 p=strstr(t,b); 23 if(p!=NULL) printf("true\n"); 24 else printf("false\n"); 25 } 26 else 27 { 28 t[0]='\0'; 29 strcpy(t,b); 30 strcat(t,b); 31 p=NULL; 32 p=strstr(t,a); 33 if(p!=NULL) printf("true\n"); 34 else printf("false\n"); 35 }/**/ 36 } 37 return 0; 38 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App