• 【剑指Offer面试编程题】题目1362:左旋转字符串--九度OJ


    题目描述:
    汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
    输入:
    多组测试数据,每个测试数据包含一个字符序列S和非负整数K。其中S的长度不超过1000。
    输出:
    对应每个测试案例,输出新序列。

    样例输入:

    UDBOJ 4
    abba 1

    样例输出:
    

    JUDBO
    bbaa
    【解题思路】这道题目应该还比较简单,注意对旋转的数字的取模处理,然后就是利用两个string来分别存下旋转的前后部分,组后综合输出即可。

    AC code:
    
    #include <cstdio>
    #include <string>
    #include <cstring>
    #include <iostream>
    using namespace std;
     
    int main()
    {
      int k;
      //string str;
      char str[1005];
      while(scanf("%s%d",str,&k)!=EOF  && k>=0)
      {
        int len=strlen(str);
        k%=len;
        if(k==0 || str=="")
        {
          printf("%s
    ",str);
          continue;
        }
        string str1(str+k,str+len),str2(str,str+k);
        printf("%s%s
    ",str1.c_str(),str2.c_str());
      }
      return 0;
    }
    /**************************************************************
        Problem: 1362
        User: huo_yao
        Language: C++
        Result: Accepted
        Time:60 ms
        Memory:1520 kb
    ****************************************************************/
    题目链接:http://ac.jobdu.com/problem.php?pid=1362

    九度-剑指Offer习题全套答案下载:http://download.csdn.net/detail/huoyaotl123/8276299


  • 相关阅读:
    Oracle 行列转换
    Oracle中特殊的INSERT语句
    在.net中实现压缩多个文件为.zip文件 【转】
    JavaScript 原型链【转】
    Oracle安装中的DHCP问题
    每日一题力扣49
    每日一题力扣423
    每日一题力扣451
    每日一题力扣237
    每日一题力扣383
  • 原文地址:https://www.cnblogs.com/huoyao/p/4248878.html
Copyright © 2020-2023  润新知