Move!Move!!Move!!!
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ
题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=26UDBOJ 4abba 1
JUDBObbaa
思想:类似于上一篇:http://blog.csdn.net/shanshanpt/article/details/8689935
例如: 输入 123456789 需要左移3位
将左右分开(以3位为分界线),分别翻转 321 987654
再将整体翻转 456789 321 OK!
代码AC:
#include <stdio.h>#include <string.h>int main(){ char str[1002], ch; int i, k, low, high; while( scanf("%s %d", str, &k) != EOF ) { getchar(); k = k % ( strlen( str ) ); // 必不可少!(当长度很大的时候会出现循环,所以先%) low = 0; high = k - 1; while( low < high ) { ch = str[low]; str[low] = str[high]; str[high] = ch; low++; high--; } low = k; high = strlen( str ) - 1; while( high > low ) { ch = str[low]; str[low] = str[high]; str[high] = ch; low++; high--; } low = 0; high = strlen( str ) - 1; while( high > low ) { ch = str[low]; str[low] = str[high]; str[high] = ch; low++; high--; } puts( str ); /* for( i = strlen( str ) - 1; i >= 0; i-- ) { printf("%c", str[i]); } printf("\n");*/ } return 0;}