信息学奥赛一本通(2050:【例5.20】字串包含)

news/2024/12/12 3:46:00/

2050:【例5.20】字串包含


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 613     通过数: 197

【题目描述】

字符串移位包含问题。

对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。

给定两个字符串s1s1和s2s2,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA是由AABCD两次移位后产生的新串BCDAA的子串,而ABCDACBD则不能通过多次移位来得到其中一个字符串是新串的子串。

【输入】

一行,包含两个字符串,中间由单个空格隔开。字符串只包含字母和数字,长度不超过3030。

【输出】

如果一个字符串是另一字符串通过若干次循环移位产生的新串的子串,则输出true,否则输出false

【输入样例】

AABCD CDAA

【输出样例】

true

【参考代码】

C代码:

#include<stdio.h>
#include<string.h>
#define N 65
char s1[N],s2[N],x[N],t[N];
int main()
{int i;scanf("%s %s",s1,s2);if(strlen(s1)<strlen(s2))  // 将短的字符串作为预判字符串 {strcpy(t,s1);strcpy(s1,s2);strcpy(s2,t);}strcpy(x,s1);if(strstr(strcat(s1,x),s2)==NULL)printf("false\n");elseprintf("true\n");return 0;
}

C++代码:

#include <iostream>
using namespace std;
string s1,s2;
int main()
{cin >> s1 >> s2;if(s1.size()<s2.size())swap(s1,s2);s1=s1+s1;if(s1.find(s2)!=s1.npos)cout << "true" << endl;elsecout << "false" << endl;return 0;
}

http://ybt.ssoier.cn:8088/problem_show.php?pid=2050

 


http://www.ppmy.cn/news/883519.html

相关文章

信息学奥赛一本通:2050:【例5.20】字串包含

2050&#xff1a;【例5.20】字串包含 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 15692 通过数: 6514 【题目描述】 字符串移位包含问题。 对于一个字符串来说&#xff0c;定义一次循环移位操作为&#xff1a;将字符串的第一个字符移动到末尾形成新的字符串。…

数字反转(信息学奥赛一本通-T1089)

【题目描述】 给定一个整数&#xff0c;请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式&#xff0c;即除非给定的原数为零&#xff0c;否则反转后得到的新数的最高位数字不应为零&#xff0c;例如输入-380&#xff0c;反转后得到的新数为-83。 【输入】 输…

信息学奥赛一本通 2024:【例4.10】末两位数

【题目链接】 ybt 2024&#xff1a;【例4.10】末两位数 【题目考点】 1. 同余定理 根据同余定理&#xff0c;有&#xff1a; ( a ∗ b ) % m ( a % m ∗ b % m ) % m (a*b)\%m (a\%m * b\%m)\%m (a∗b)%m(a%m∗b%m)%m 2. 幂取模 a b % m ( a b − 1 ⋅ a ) % m ( a b…

信息学奥赛一本通(2024:【例4.10】末两位数)

2024&#xff1a;【例4.10】末两位数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 1078 通过数: 584 【题目描述】 求nn个19921992的乘积的末两位数是多少&#xff1f; 【输入】 输入nn。 【输出】 如题述的末两位数。 【输入样例】 3 【输出样例】 88 【提…

信息学奥赛一本通:1089:数字反转

【题目描述】 给定一个整数&#xff0c;请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式&#xff0c;即除非给定的原数为零&#xff0c;否则反转后得到的新数的最高位数字不应为零&#xff0c;例如输入−380&#xff0c;反转后得到的新数为−83。 【输入】 …

信息学奥赛一本通——解题目录

慢慢更新中 【声明】讲解全是我自己的博客 【第一章 C语言入门】 1000&#xff1a;入门测试题目 信息学奥赛一本通——1000&#xff1a;入门测试题目_c小蒟蒻的博客-CSDN博客 2060&#xff1a;【例1.1】计算机输出 信息学奥赛一本通——2060&#xff1a;【例1.1】计…

北语、北外2022年12月公派英语统考的通知

近日&#xff0c;北语和北外均发布了12月29日国家公派英语高级班结业统考的通知。与以往不同的是&#xff1a;为无法参加12月29日统考的学员增加一次考试机会&#xff0c;时间定于2023年2月25日&#xff0c;但需要提前报名。具体报名时间及方式参见两校的通知&#xff0c;知识人…

信息学奥赛一本通:2024:【例4.10】末两位数

2024&#xff1a;【例4.10】末两位数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 20235 通过数: 11679 【题目描述】 求n个1992的乘积的末两位数是多少&#xff1f; 【输入】 输入n。 【输出】 如题述的末两位数。 【输入样例】 3 【输出样例】 88 【提示】 …