题目描述:
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
输入:
多组测试数据,每个测试数据包含一个字符序列S和非负整数K。其中S的长度不超过1000。
输出:
对应每个测试案例,输出新序列。
样例输入:
UDBOJ 4
abba 1
样例输出:
JUDBO
bbaa
【解析】
思路源于前一篇文章思路:反转单词顺序
【代码】
/*********************************
* 日期:2013-12-02
* 作者:SJF0115
* 题号: 题目1362:左旋转字符串(Move!Move!!Move!!!)
* 来源:http://ac.jobdu.com/problem.php?pid=1362
* 结果:AC
* 来源:剑指Offer
* 总结:
**********************************/
#include <stdio.h>
#include <malloc.h>
#include <string.h>
char *str;
//反转单词
void ReverseWord(char* words,int begin,int end){
int temp;
if(words == NULL || begin > end || begin < 0){
return;
}
//反转
while(begin < end){
temp = words[begin];
words[begin] = words[end];
words[end] = temp;
begin ++;
end --;
}
}
char* Reverse(char* str,int n){
if(str == NULL || n < 0){
return "";
}
int len = strlen(str);
//分成两部分(1)前n项(2)剩余项
//反转前n个
ReverseWord(str,0,n-1);
//反转剩余
ReverseWord(str,n,len-1);
//全部反转
ReverseWord(str,0,len-1);
return str;
}
int main() {
int i,n;
str = (char*)malloc(sizeof(char)*1001);
while(scanf("%s",str) != EOF){
scanf("%d",&n);
//左旋转
//注意一下n需要取余就可以了,不能超过字符串自身的长度
n = n % strlen(str);
str = Reverse(str,n);
//输出
for(i = 0;i < strlen(str);i++){
printf("%c",str[i]);
}
printf("\n");
}//while
return 0;
}
分享到:
相关推荐
# Python实现《剑指offer》 部分代码自己添加了一些测试用例, 或者自己添加了一些功能 1. 初级程序员注重算法和数据结构 2. 事先做好准备,对工作有热情 3. 面试过程放松。不要急于写代码,了解清楚所要解决的问题,...
剑指offer(C++)1
《剑指Offer》 1. 赋值运算函数 2. 单例设计模式 3. 二维数组中查找目标值 4. 替换字符串中的空格 5. 从尾到头打印链表 6. 由前序和中序遍历重建二叉树 7. 用两个栈实现队列 8. 求旋转数组的最小数字 9. ...
剑指offer刷题笔记(一),大概完成40多道题,语言c++,python,java
牛客网剑指offer——Java题解.pdf
提供剑指offer 名企面试官精讲典型编程题和一套编程题的源代码。
剑指offer例题代码 不想看书可以直接看代码 学完了找工作、机试、考研都不会有问题 剑指offer例题代码 不想看书可以直接看代码 学完了找工作、机试、考研都不会有问题 剑指offer例题代码 不想看书可以直接看代码 ...
剑指offer的Java代码全套加文字说明
《剑指Offer》题目及代码,基于java语言实现;
九度oj 题目1369:字符串的排列 剑指offer里面的题目 自己写的代码,供参考!
此程序为剑指offer程序,便于找工作的小伙伴的复习~
剑指offer
最全的《剑指offer》Java版代码实现,保证正确性,全都在OJ上测试AC了。
因为剑指offer上的面试题有些写的有错误,这是实现了剑指offer中面试题的代码
包含剑指offer全部代码,用VS打开,直接可以运行所有代码
java版剑指Offer,主要用于找工作的资料,数据结构的java语言实现
剑指offer,对于算法初学者和求职者是个不错的选择。
剑指offer源代码解析剑指offer源代码解析剑指offer源代码解析
剑指 offer 题解.pdf
剑指offer剑指offer