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

  • 相关阅读:
    【转载】Java的JVM原理
    【转载】Java容器的线程安全
    【转载】Java中的容器讲解
    【转载】Java集合容器全面分析
    【转载】Java多线程
    【转载】Java泛型(一)
    09_dubbo服务发布原理
    07_dubbo_compiler
    06_javassist
    05_dubbo_aop
  • 原文地址:https://www.cnblogs.com/wxwhnu/p/11422882.html
Copyright © 2011-2022 走看看