zoukankan      html  css  js  c++  java
  • 剑指Offer

    剑指Offer - 九度1362 - 左旋转字符串(Move!Move!!Move!!!)
    2013-11-23 03:05
    题目描述:
    汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
    输入:
    多组测试数据,每个测试数据包含一个字符序列S和非负整数K。其中S的长度不超过1000。
    输出:
    对应每个测试案例,输出新序列。
    样例输入:
    UDBOJ 4
    abba 1
    样例输出:
    JUDBO
    bbaa
    题意分析:
      题目要求将字符串S循环左移k位,先考虑下面俩情况:
        1. S为空串,返回空串。
        2. k大于S长度,取余。
      处理了以后,调用两次substr即可,res = str.substr(n, str.length() - n) + str.substr(0, n);
      时间复杂度O(n),n为字符串长度,空间复杂度O(1)。
     1 // 652798    zhuli19901106    1362    Accepted    点击此处查看所有case的执行结果    1520KB    483B    280MS
     2 // 201311172053
     3 #include <iostream>
     4 #include <string>
     5 using namespace std;
     6 
     7 string left_rotate(const string &str, int n)
     8 {
     9     if(str.length() == 0){
    10         return str;        
    11     }
    12     
    13     n = n % str.length();
    14     
    15     if(n != 0){
    16         return str.substr(n, str.length() - n) + str.substr(0, n);
    17     }else{
    18         return str;
    19     }
    20 }
    21 
    22 int main()
    23 {
    24     string str;
    25     int n;
    26     
    27     while(cin >> str >> n){
    28         cout << left_rotate(str, n) << endl;
    29     }
    30     
    31     return 0;
    32 }
     
  • 相关阅读:
    python 遍历目录 正则
    (含PPT)MySQL托管服务架构及读写分离的优化
    jquery 将一维数组分配给下拉菜单
    kafka安装和使用
    How to search Installed Updates
    How to search Installed Updates
    How to search Installed Updates
    How to search Installed Updates
    复旦软件工程专业课
    复旦软件工程专业课
  • 原文地址:https://www.cnblogs.com/zhuli19901106/p/3438575.html
Copyright © 2011-2022 走看看