好贷网好贷款

1362 循环左移字符串

发布时间:2016-12-5 16:35:07 编辑: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 背包)

相关文章

相关评论