当前位置:网站首页>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
边栏推荐
- Cutting edge technology for cultivating robot education creativity
- How to make ERP inventory accounts of chemical enterprises more accurate
- phpstudy小皮的mysql点击启动后迅速闪退,已解决
- Frequent MySQL operations cause table locking problems
- 培养机器人教育创造力的前沿科技
- 获取前一天的js(时间戳转换)
- go 文件路径操作
- 科普|英语不好对NPDP考试有影响吗 ?
- Abnova 环孢素A单克隆抗体,及其研究工具
- Maker education infiltrating the transformation of maker spirit and culture
猜你喜欢

2.<tag-哈希表, 字符串>补充: 剑指 Offer 50. 第一个只出现一次的字符 dbc

基于AVFoundation实现视频录制的两种方式

如何让化工企业的ERP库存账目更准确

Abbkine trakine F-actin Staining Kit (green fluorescence) scheme

2.8、项目管理过程基础知识

IC popular science article: those things about Eco

National Eye Care Education Conference, 2022 the Fourth Beijing International Youth eye health industry exhibition

Abnova丨荧光染料 620-M 链霉亲和素方案

ProSci LAG-3 重组蛋白说明书

Duchefa MS medium contains vitamin instructions
随机推荐
Abnova丨DNA 标记高质量控制测试方案
教你自己训练的pytorch模型转caffe(二)
基于AVFoundation实现视频录制的两种方式
When steam education enters personalized information technology courses
Graph embedding learning notes
Make Jar, Not War
Duchefa d5124 md5a medium Chinese and English instructions
小程序页面导航
Abnova丨CRISPR SpCas9 多克隆抗体方案
Abnova DNA marker high quality control test program
Is the securities account given by the school of Finance and business safe? Can I open an account?
Codeforces Round #804 (Div. 2) - A, B, C
Duchefa low melting point agarose PPC Chinese and English instructions
Duchefa细胞分裂素丨二氢玉米素 (DHZ)说明书
2020 CCPC Weihai - A. golden spirit (thinking), D. ABC project (big number decomposition / thinking)
Analysis of steam education mode under the integration of five Education
Abnova fluorescent dye 620-m streptavidin scheme
Material Design组件 - 使用BottomSheet展现扩展内容(二)
Popular science | does poor English affect the NPDP exam?
How to open an account online for futures? Is it safe?