1362 循环左移字符串

发布时间:2017-3-28 18:09:59 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"1362 循环左移字符串",主要涉及到1362 循环左移字符串方面的内容,对于1362 循环左移字符串感兴趣的同学可以参考一下。

1、根据1361的原理,对这道题进行联想。发现本问题可以采用两次翻转方法。(看来这样翻转局部位置但不翻转内部顺序的问题都可以这样解决) 第一次整体翻转,第二次局部翻转。(或者先局部翻转,再整体翻转) 2、需要注意一个点:循环左移。 要做到真正的循环,需要对移动次数求模。找到实际移动的次数。 # include<stdio.h> # include<string.h> # include<malloc.h> int reverse(char *str, int left, int right) //添加两个参数来控制翻转位置 { if(left<0 || left>=right || right>strlen(str)-1) //合法性检查 return 0; char tmp; while(left<right) //左右游标控制 { tmp = str[left]; str[left] = str[right]; str[right] = tmp; left++; right--; } return 1; //学会返回函数执行状态 } int main() { char a[1000]; int n; while(scanf("%s %d",&a, &n) != EOF) { n = n%strlen(a); //做到真正的循环 reverse(a, 0, n-1); //局部翻转 reverse(a, n, strlen(a)-1); //局部翻转 reverse(a, 0, strlen(a)-1); //整体翻转 printf("%s\n",a); } return 1; }

上一篇:shell中包含一个脚本文件
下一篇:hdu 2955(01 背包)

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款