字符串面试题(四)— 判断一个字符串是否为另外一个字符串旋转之后的字符串

判断一个字符串是否为另外一个字符串旋转之后的字符串。
例如: 给定s1 = AABCD和s2 = BCDAA,返回1,
给定s1=abcd和s2=ACBD,返回0。
AABCD左旋一个字符得到ABCDA
AABCD左旋两个字符得到BCDAA
AABCD右旋一个字符得到DAABC
AABCD右旋两个字符得到CDAAB



思路:根据左旋或右旋结果和原字符串的联系,可以将一个给定的字符串拷贝一份放在该字符串的后面得到新的字符串,只需要判断另一个字符串是不是组合的新字符串的子字符串就可以解决问题。

例如:给定的一个字符串为ABCDE,经过拷贝后的字符串为ABCDEABCDE,观察这个字符串,能够发现给定的字符串ABCDE经过左、右旋的所有情况为字符串ABCDEABCDE的子串。

时间: 2024-10-25 20:33:51

字符串面试题(四)— 判断一个字符串是否为另外一个字符串旋转之后的字符串的相关文章

字符串笔试题

1.字符串移位包含问题 //普通解法 bool contain_check() { char s[6] = "AABCD"; char d[5] = "CDAA"; int len = strlen(s); for(int i=0; i<len; ++i) { char temp = s[0]; for(int j=0; j<len-1; ++j) s[j] = s[j+1]; s[len-1] = temp; if(strstr(s,d) != 0)

jsp-JSP页面添加一个“查询”按钮,查询条件为“姓名”反正就是字符串就行

问题描述 JSP页面添加一个"查询"按钮,查询条件为"姓名"反正就是字符串就行 JSP页面添加一个"查询"按钮,查询条件为"姓名"反正就是字符串就行,应该怎么写,对应的action和daoa怎么写?求代码~最主要,我是想知道,字符串怎么传值的,数据类型转换吗?所以我想看看代码..我用的是ssh架构,IntelliJ IDEA 10.5工具,拜托各位大神啦 解决方案 就正常的提交请求呀,和增删查改一样的 解决方案二: 很简单,按

代码-JSP页面添加一个“查询”按钮,查询条件为“姓名”反正就是字符串就行,我想知道,字符串怎么传值的

问题描述 JSP页面添加一个"查询"按钮,查询条件为"姓名"反正就是字符串就行,我想知道,字符串怎么传值的 JSP页面添加一个"查询"按钮,查询条件为"姓名"反正就是字符串就行,应该怎么写,对应的action和daoa怎么写?求代码~**最主要,我是想知道,字符串怎么传值的,数据类型转换吗?所以我想看看代码**..我用的是ssh架构,IntelliJ IDEA 10.5工具,拜托各位大神啦 解决方案 最简单的就是通过表单传值h

算法 优化-编写一个函数,该函数将筛选出两个字符串参数中相同的字符,并按字母序进行排序后返回

问题描述 编写一个函数,该函数将筛选出两个字符串参数中相同的字符,并按字母序进行排序后返回 本题是某欧外企面试题,下面给出一个我当时的C语言解法,希望请教各位高手们更为高效的解法. char *func(const char *s1, const char *s2) { char temp[256];//ascii_table memset(temp, 0, sizeof(temp)); char *p1 = s1, *p2 = s2; int len = 0; for(; *p1!=0; p1

String字符串截取的四种方式总结_javascript技巧

如下所示: import java.util.StringTokenizer; import java.util.regex.Pattern; import org.junit.Test; public class TestStringToken { @Test public void subSting() { String str = "java,javac,javae"; String s1 = str.substring(2);//"va,javac,javae&quo

C语言实现返回字符串函数的四种方法_C 语言

前言 C语言返回字符串函数共有四种方式,分别如下:       使用堆空间,返回申请的堆地址,注意释放       函数参数传递指针,返回该指针       返回函数内定义的静态变量(共享)       返回全局变量 下面来看看详细的介绍 其实就是要返回一个有效的指针,尾部变量退出后就无效了. 使用分配的内存,地址是有效 char *fun() { char* s = (char*)calloc(100, sizeof(char*) ); if (s) strcpy ( s , "abc &qu

怎样创建时间Time1类Hour、Minute、Second,它们用于表示采取统一时间格式(24小时制)的一个时间。并定义一个不含参数的ToUniwersalString方法,该方法采取统一的格式返回一个字符串,它包括6个数位——两个用于表示时间,两个用于

问题描述 怎样创建时间Time1类Hour.Minute.Second,它们用于表示采取统一时间格式(24小时制)的一个时间.并定义一个不含参数的ToUniwersalString方法,该方法采取统一的格式返回一个字符串,它包括6个数位--两个用于表示时间,两个用于表示分钟,两个用于表示秒.创建Time1类的两个实例,编译和测试Time1类. 解决方案 解决方案二:publicvoidInitializeTimer(){this.timerClock.Elapsed+=newElapsedEve

在ASP.NET 2.0中操作数据之五十四:添加新记录时包含一个文件上传选项_自学过程

导言: 在前面2节教程,我们探讨了如何使用FileUpload控件从客户端向服务器上传文件,以及如何在数据Web控件里显示二进制数据. 在本节,我们将创建一个web页面以添加新的种类.除了为类的name和description属性添加TextBoxes控件外,我们还要在页面上添加2个FileUpload控件--一个用来上传新类的图片,另一个用来上传类的小说明册子.上传的图片将直接存储在新记录的Picture列.与此相反,小册子将存储在~/Brochures 文件夹,同时将文件路径存储在新记录的B

如何判断一个url指向的是一个目录?

问题描述 就以一个FTP客户端来说吧,不使用第三方库的话,如何实现FTP的功能?如果能够不用sun.net.ftp.*最好.如果使用java.net.url的话,如何判断一个url指向的是一个文件还是一个文件夹?以及如何获取该文件夹下的filelist?谢谢~~~~ 解决方案 解决方案二:你可以利用那个url得到一个文件对象,然后你在调用File类中isDirectory()测试此抽象路径名表示的文件是否是一个目录.要获得某个文件夹下的FileList也是有相应的方法的File[]listFil