题目要求:
写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。
例如:
- 给定s1 AABCD和s2 =BCDAA,返回1。
- 给定s1=abcd和s2=ACBD,返回0。
- AABCD左旋一个字符得到ABCDA
- AABCD左旋两个字符得到BCDAA
- AABCD右旋一个字符得到DAABC
思路展开:
例如:我们要判断BCDAA是否是AABCD旋转得到的。
方法一:可以将AABCD进行拷贝和拼接,变为AABCDAABCD,以此在使用库函数strstr进行判定,得到结果。
方法二:我们使用以《字符串旋转(1)》的第一种方法进行挪动,挪动一个字符进行一次判断,最后在判断成功返回1,当字符串中所有的字符都挪动了一次后,任然没有结果,则返回0表示失败。http://t.csdn.cn/QrxTihttp://t.csdn.cn/QrxTi
方法一:
需要采用strstr、strcat、strcpy 三个库函数进行使用。
strstr进判断,strcat进行拼接、strcpy进行拷贝。
简略介绍:
strcpy(x,y)
y是指拷贝的内容,x是指将拷贝的内容y放置的空间!
strnact(x,y)
这是将y的内容拼接到x内容的末端。
strstr(x,y)
表示的是进行判断,判断y是否是x的一部分,通常用于字符串,如果不是一部分则返回NULL
方法二:
采用两个for循环进行遍历,第一个for是挪动(旋转)字符的,第二个for是把其他字符往前方挪动,且在第一个for中要包含判断语句,判断每一次挪动(旋转)的结果是否和另一个字符串相同,如果是返回1。
挪动(旋转)的字符和其他字符往前挪动的思路参考http://t.csdn.cn/QrxTi