zoukankan      html  css  js  c++  java
  • 左旋字符串

    左旋字符串

    题目描述

    字符串的旋转操作是把字符串前面的若干字符移到字符串的尾部. 定义一个函数实现字符串左旋转操作的功能. 不如, 输入字符串"abcdefg"和数字2, 该函数将返回左旋转两位等到的结果"cdefgab"

    利用string的构造函数, 左闭右开原则, 偷懒了, 罪过罪过...

    class Solution {
    public:
        string LeftRotateString(string str, int n) {
            if (str.empty()) {
                return str;
            }
            
            n %= str.length();
            string str1(str.begin() + n, str.end());
            string str2(str.begin(), str.begin() + n);
            return str1+str2;
        }
    };
    

    一个一个的移位, 没什么好说的

    class Solution {
    public:
        string LeftRotateString(string str, int n) {
            if (0 == str.size()) 
                return str;
            int end = str.length() - 1;
            n = n % (end + 1);
            //n %= str.length();
            for (int i = 0; i < n; i++) {
                char temp = str[0];
                for (int j = 0; j < str.length() - 1; j++) {
                    str[j] = str[j + 1];
                }
                str[end] = temp;
            }
            return str;
        }
    };
    
  • 相关阅读:
    「manacher」
    「回文自动机」
    「可持久化数据结构(平衡树、trie树、线段树) 」
    「后缀数组」
    「LCT」
    「网络流」
    「一些知识点」
    「至今不会」
    「推荐博客」
    「最小生成树」
  • 原文地址:https://www.cnblogs.com/hesper/p/10525807.html
Copyright © 2011-2022 走看看