Advertisement

刷题字符串的旋转结果,并判定其是否可由另一个字符串旋转得到

阅读量:

题目描述

设计一个函数来判断给定的一个字符串是否可以通过旋转另一个字符串得到
例如:
给定s1=AABCD和s2=BCDAA,则返回1
给定s1=abcd和s2=ABCD,则返回0
将AABCD左移一位得到BCDAA
将AABCD左移两位得到BCDAA(注:这里可能存在笔误)
将AABCD右移一位得到DAABC

方法一(不断左旋)

1、算法思想

1.实现任意次数的左旋
2.在逐次进行左旋,然后不断进行比较

易于理解,效率低

2、过程

part1:
1.随后编写一个能够将字符串左旋指定次数的函数,并以避免不必要的字符移动的方式设计算法
2.通过临时变量保存第一个字符,在循环过程中依次将每个字符向前移动一位位置,并将其值传递给下一个位置(注意仅限于循环前一位置)
3.完成一次完整的左移操作后将临时变量中的值赋值给最后一个位置
4.当num不等于零时持续执行上述步骤以达到预期效果
part2:
1.在主程序中使用循环结构重复调用该函数以实现多次左旋操作,并在此过程中不断比较目标字符串的变化情况
2.如果发现两个目标字符串完全一致则输出yes并终止程序
3.若经过所有可能的旋转组合后仍无法使两个字符串匹配则

全部评论 (0)

还没有任何评论哟~