本次代码的实现主要依靠于逆序
样例:abcdefg
如果要左旋3位
abc defg
分别逆序
cba gfed
再整体逆序
defgabc
此时仍然达到了这个目的,因此可以设计一个逆序函数,使用三次来实现左旋.
首先确定主函数内容
我们先来实现一次逆序
其中,接收的是两个地址,以此确定逆序的地址区段.
再看内容,我的目的是实现第一个和最后一个字符的交换,再向中间推进.
细节:条件处没有等号是为了防止字符个数是奇数时陷入死循环.
确定了逆序函数,我们就应该确定实现逆序的地址区段.
首先实现左边逆序:假设我要左旋k个字符,那么我可以将第一个和第k个字符逆序,并且第一个字符的指针是arr,第k个字符的指针是arr➕k➖1
所以使用reverse函数时传入这两个指针。
后面的同理.
现在开始使用!
可见它很好的运行了起来。