剑指offer 左旋字符串 C++ 简单理解

左旋转字符串

http://www.nowcoder.com/questionTerminal/12d959b108cb42b1ab72cef4d36af5ec

class Solution {
public:
    //左旋字符串(循环左移字符串):左移串长length位后和原来一样,所以正真需要左移的是n % str.length()位
    string LeftRotateString(string str, int n) {
        int len = str.length();
        int trueSet = n % len;
        if(n == 0 || len <= 1)//空串和单字符串左移无意义
            return str;
        return str.substr(n) + str.substr(0, n);
    }
};

全部评论
你考虑的很全面,但是n>str.length()的时候系统会报错吧,再说你设置的trueSet也没用到啊
1 回复 分享
发布于 2020-05-07 18:44
int len = str.length(); if(n == 0 || len <= 1) return str; int trueSet = n % len; return str.substr(trueSet) + str.substr(0,trueSet);
点赞 回复 分享
发布于 2022-11-19 18:27 北京
len为0会报除以0的错误的兄弟,trueset也忘了写
点赞 回复 分享
发布于 2020-05-31 11:18

相关推荐

点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务