zoukankan      html  css  js  c++  java
  • 剑指offer43:左旋转字符串(字符串):对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。

    1 题目描述

      汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!

    2 思路和方法

      str=erase(pos,n);  //删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符。  str1=s.substr(0,n);  //获得字符串s中 从第0位开始的长度为5的字符串  return str + str1;

    3 C++核心代码

    1 class Solution {
    2 public:
    3     string LeftRotateString(string str, int n) {
    4         string str1;
    5         str1 = str.substr(0,n);
    6         str.erase(0,n);
    7         return str+str1;
    8     }
    9 };
    View Code
     1 class Solution {
     2 public:
     3     string LeftRotateString(string str, int n) {
     4         if (n>str.size()||n<0)return "";
     5         if (n == str.size()||n==0)return str;
     6         string s1, s2;
     7         for (int i = 0; i < str.size();i++)
     8             if (i < n)
     9                 s1 += str[i];
    10             else 
    11                 s2 += str[i];
    12         return s2 + s1;
    13     }
    14 };
    View Code

    参考资料

    https://blog.csdn.net/u012477435/article/details/83351659#_873

    https://blog.csdn.net/dongyanwen6036/article/details/84871716

  • 相关阅读:
    [Graph]Doubling Algorithm
    Luogu 3203 BZOJ 2002——弹飞绵羊
    BZOJ 1468——tree
    BZOJ 10628 Luogu 2633
    Mo's Algorithm
    bzoj1063: [Noi2008]道路设计
    bzoj1264: [AHOI2006]基因匹配Match
    bzoj1177: [Apio2009]Oil
    bzoj1260: [CQOI2007]涂色paint
    bzoj3674: 可持久化并查集加强版
  • 原文地址:https://www.cnblogs.com/wxwhnu/p/11422882.html
Copyright © 2011-2022 走看看