当前位置:网站首页>CareerCup它1.8 串移包括问题
CareerCup它1.8 串移包括问题
2022-07-05 20:48:00 【全栈程序员站长】
大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。
【称号】
原文:
1.8 Assume you have a method isSubstring which checks if one word is a substring of another. Given two strings, s1 and s2, write code to check if s2 is a rotation of s1 using only one call to isSubstring ( i.e., “waterbottle” is a rotation of “erbottlewat”).
译文:
如果你有一个isSubstring函数,能够检測一个字符串是否是还有一个字符串的子串。 给出字符串s1和s2。仅仅使用一次isSubstring就能推断s2是否是s1的旋转字符串, 请写出代码。旋转字符串:”waterbottle”是”erbottlewat”的旋转字符串。
【分析】
我们也能够对循环移位之后的结果进行分析。 以S1 = ABCD为例,先分析对S1进行循环移位之后的结果,例如以下所看到的: ABCD—>BCDA—->CDAB—->DABC—->ABCD…… 如果我们把前面的移走的数据进行保留。会发现有例如以下的规律: ABCD—>ABCDA—->ABCDAB—->ABCDABC—->ABCDABCD…… 因此,能够看出对S1做循环移位所得到的字符串都将是字符串S1S1的子字符串。
假设S2能够由S1循环移位得到,那么S2一定在S1S1上,这样时间复杂度就减少了。
相同题目:编程之美之字符串移位包括问题
【代码一】
/*********************************
* 日期:2014-5-15
* 作者:SJF0115
* 题号: 字符串移位包括问题
* 来源:CareerCup
**********************************/
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
bool isSubstring(char* str1,char* str2){
if(str1 == NULL || str2 == NULL){
return false;
}
if(strstr(str1,str2) != 0){
return true;
}
return false;
}
bool IsRotate(char* str1,char* str2){
int i,j;
if(str1 == NULL || str2 == NULL){
return false;
}
int len1 = strlen(str1);
char* str3 = new char(len1*2+1);
strcpy(str3,str1);
strcat(str3,str1);
//str3 = str1+str1
if(isSubstring(str3,str2)){
return true;
}
return false;
}
int main(){
char str1[6] = "AABCD";
char str2[5] = "CDAA";
bool result = IsRotate(str1,str2);
cout<<result<<endl;
return 0;
}
【代码二】
/*********************************
* 日期:2014-5-15
* 作者:SJF0115
* 题号: 字符串移位包括问题
* 来源:CareerCup
**********************************/
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
bool isSubstring(string str1,string str2){
if(str1.find(str2) != string::npos) {
return true;
}
return false;
}
bool IsRotate(string str1,string str2){
string str3 = str1+str1;
if(isSubstring(str3,str2)){
return true;
}
return false;
}
int main(){
string str1 = "apple";
string str2 = "pleap";
bool result = IsRotate(str1,str2);
cout<<result<<endl;
return 0;
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117665.html原文链接:https://javaforall.cn
边栏推荐
- leetcode:1139. 最大的以 1 为边界的正方形
- Duchefa s0188 Chinese and English instructions of spectinomycin hydrochloride pentahydrate
- [quick start of Digital IC Verification] 2. Through an example of SOC project, understand the architecture of SOC and explore the design process of digital system
- Frequent MySQL operations cause table locking problems
- 如何让化工企业的ERP库存账目更准确
- 王老吉药业“关爱烈日下最可爱的人”公益活动在南京启动
- 2.8、项目管理过程基础知识
- Nprogress plug-in progress bar
- 鸿蒙os第四次学习
- 科普|英语不好对NPDP考试有影响吗 ?
猜你喜欢
小程序页面导航
教你自己训练的pytorch模型转caffe(三)
2.8 basic knowledge of project management process
Duchefa cytokinin dihydrozeatin (DHZ) instructions
National Eye Care Education Conference, 2022 the Fourth Beijing International Youth eye health industry exhibition
Norgen AAV提取剂盒说明书(含特色)
Applet global configuration
Duchefa细胞分裂素丨二氢玉米素 (DHZ)说明书
Abnova丨E (DIII) (WNV) 重组蛋白 中英文说明书
Mathematical analysis_ Notes_ Chapter 9: curve integral and surface integral
随机推荐
How to renew NPDP? Here comes the operation guide!
Codeforces Round #804 (Div. 2) - A, B, C
Applet global configuration
教你自己训练的pytorch模型转caffe(一)
Material Design组件 - 使用BottomSheet展现扩展内容(二)
解析五育融合之下的steam教育模式
Duchefa细胞分裂素丨二氢玉米素 (DHZ)说明书
Abnova丨荧光染料 620-M 链霉亲和素方案
小程序项目结构
资源道具化
王老吉药业“关爱烈日下最可爱的人”公益活动在南京启动
Duchefa d5124 md5a medium Chinese and English instructions
Point cloud file Dat file read save
go 文件路径操作
Promouvoir le développement de l'industrie culturelle et touristique par la recherche, l'apprentissage et l'enseignement pratique du tourisme
小程序页面导航
Abnova丨 MaxPab 小鼠源多克隆抗体解决方案
Clear app data and get Icon
Selenium element information
The development of research tourism practical education helps the development of cultural tourism industry