zoukankan      html  css  js  c++  java
  • [九度][何海涛] Move!Move!!Move!!!

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

    类似于ab要变成ba,那么(aTbT)T = ba
     1 #include <iostream>
     2 using namespace std;
     3 
     4 void reverse(string &s, int beg, int end)
     5 {
     6     if (beg >= end)
     7         return;
     8 
     9     while(beg < end)
    10     {
    11         char c = s[beg];
    12         s[beg] = s[end];
    13         s[end] = c;
    14         beg++;
    15         end--;
    16     }
    17 }
    18 
    19 int main()
    20 {
    21     string s;
    22     int k;
    23 
    24     while(cin >> s >> k)
    25     {
    26         k = k % s.size();
    27         reverse(s, 0, k - 1);
    28         reverse(s, k, s.size() - 1);
    29         reverse(s, 0, s.size() - 1);
    30         cout << s << endl;
    31     }
    32 }
  • 相关阅读:

    php多版本环境变量设置
    vagrantbox 磁盘扩容
    # Csv数据导入导出
    php把数组写入文件
    log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).
    springmvc 多个拦截器执行的顺序
    yum 源修改
    连接(JOIN)运算
    SQL基本概述
  • 原文地址:https://www.cnblogs.com/chkkch/p/2784166.html
Copyright © 2011-2022 走看看