返回

旋转字符串

发布时间:2023-04-12 17:56:22 307

题目内容:

实现一个函数,可以左旋字符串中的k个字符。

例如·:ABCD左旋一个字符得到BCDA

ABCD左旋两个字符得到CDAB

一.方法一

#include
#include
//三步反转法
//abcdef
//ab cdef 先切开
//ba fedc 两部分都反转
//bafedc 分开的两部分再组合在一起
//cdefab 再倒序
void reverse(char *left,char *right)
{
char tmp=*left;
*left=*right;
*right=tmp;
left++;
right--;
}
void left_move(char arr[],int k)
{
int len=strlen(arr);
reverse(arr,arr+k);//首先逆序前两个字符(左边的)
reverse(arr+k+1,arr+len-1);//再逆序剩下的字符(右边的)
reverse(arr,arr+len-1);//再将整个字符串逆序
}
int main()
{
char arr[]="abcdef";
left_move(arr,2);
printf("%s\n",arr);
return 0;
}

二.方法二

#include
#include
void left_move(char arr[],int k)
{
int i=0;
int len=strlen(arr);
for(i=0;i {
//1.创建一个变量
char tmp=arr[0];
//2.开始将字符一个一个的向前挪
int j=0;
for(j=0;j {
arr[j]=arr[j+1];
}
//3.将原来的第一个字符放到最后一个去
arr[len-1]=tmp;
}
}
int main()
{
char arr[]="abcdef";
left_move(arr,2);
printf("%s\n",arr);
return 0;
}
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
c语言实现三子棋 2023-04-12 15:13:36