何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ

题目描述: http://ac.jobdu.com/problem.php?cid=1039&pid=26

汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
输入:
多组测试数据,每个测试数据包含一个字符序列S和非负整数K。其中S的长度不超过1000。
输出:
对应每个测试案例,输出新序列。
样例输入:
UDBOJ 4
abba 1
样例输出:
JUDBO
bbaa
思想:类似于上一篇: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;
}

Move!Move!!Move!!!相关推荐

  1. C++右值引用 和 std::move()

    void debug(int&& a){return a; } std::move(a) 可以将左值变为右值 int c = 0x100; // c 可以被取地址,c 为左值,c++ ...

  2. 火了,挡不住了:Facebook Move编程语言入门

    火了,挡不住了:Facebook Move编程语言入门 Facebook区块链项目Libra的其中一个技术亮点,就是它使用了一种称为Move的新编程语言,那么这种语言是怎样的呢,今天我们就从其官方的概 ...

  3. std::move C++11 标准新特性: 右值引用与转移语义

    新特性的目的 右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它实现了转移语义 (Move Sementics) 和 ...

  4. 详解C++移动语义std::move()

    目录 1. C++move的概念 2. C++move的特点 3. 左值.右值与左值引用.右值引用 3.1 左值和右值的概念 3.2 左值引用和右值引用 4. std::move详解 4.1 std: ...

  5. Libra教程之:move语言的特点和例子

    文章目录 move语言的特点 资源优先 灵活性 安全性 可验证性 Move语句初探 点对点支付交易脚本 Currency Module move语言的特点 Libra的目标是打造一个全球话的金融和货币 ...

  6. Libra教程之:来了,你最爱的Move语言

    文章目录 Move语言 Move的核心概念 Move交易脚本 Move modules Move resources 写一个Move程序 编写交易脚本 编写自己的Modules Move语言 Move ...

  7. 【C++ Primer | 16】std::move和std::forward、完美转发

    右值引用应该是C++11引入的一个非常重要的技术,因为它是移动语义(Move semantics)与完美转发(Perfect forwarding)的基石: 移动语义:将内存的所有权从一个对象转移到另 ...

  8. 注意:匿名函数调用直接加载函数名setInterval(move,30)

    setInterval要求第一个参数必须是含Javascript命令的字符串或函数对象,所以 setInterval("move()",300) 以及 setInterval(mo ...

  9. (译)C++11中的Move语义和右值引用

    郑重声明:本文是笔者网上翻译原文,部分有做添加说明,所有权归原文作者! 地址:http://www.cprogramming.com/c++11/rvalue-references-and-move- ...

  10. C++新特性探究(十六):move constructor移动构造

    相关博文: C++新特性探究(十三):右值引用(r-value ref)&&探究 C++新特性探究(十六):move constructor移动构造 C++新特性探究(13.5):右值 ...

最新文章

  1. Java学习总结:51(对象序列化)
  2. linux下批量修改文件名精彩解答案例分享
  3. java获取当前时间戳_Java DateTime 获得当前 Unix 的时间戳
  4. 单体应用架构——垂直应用架构———分布式架构———SOA架构———微服务架构
  5. OAuth 2.0 的探险之旅
  6. 培训机构还能不能信任?
  7. Qt + Python + OpenCV图标替换工具 之 Python调用dll(三)
  8. java native 关键字
  9. mac自带的python怎么升级_mac上怎么更新python
  10. 小米平板5系列将有三个版本:搭载全新骁龙860芯片
  11. Mongo db 与mysql 语法比较
  12. c语言ascii码16进制,C语言附录ASCII码表.doc
  13. 地球人口承载力估计(YZOJ-1021)
  14. 单芯片无线供电IC 无线充电芯片 无线输电芯片FS68001
  15. 记一次Prometheus完整监控案例
  16. Elasticsearch如何提升查询效率
  17. html js获取天气预报,js 读取天气预报信息 示例代码(百度地图天气接口)
  18. UML类图关系(C++)
  19. 为什么会患糖尿病足?可能与这5种原因有关
  20. Xilinx GT学习

热门文章

  1. 【Verilog】一、Verilog的always使用
  2. android opengles光照效果-散射光
  3. USB TYPE-C PIN定义
  4. 不能初始化Photoshop 因为暂存盘已满
  5. 网络的宽度对深度学习模型的性能影响
  6. 运用杨鹏17天搞定GRE单词的方法,算出每一天应该被单词的量
  7. boss直聘账号异常登不上_【技术变现小技巧】-- Boss直聘 批量求简历
  8. cmakelist基本语法
  9. 中国工程院谭建荣:人工智能应用得再好,最核心的算法不行,创新能力就不行丨MEET2021
  10. 高性能 DotNetty Server Clinet Demo .NetCore