剑指offer 58-翻转字符串

2018-05-12  本文已影响0人  千千鱼

方案:灵活运用C++中的erase函数,insert函数,append函数

注:str.push_back() 一次只能输入一个字符,而append能够在末尾添加个字符串,个人认为和str+str2是一个效果。

我自己的代码

class Solution {
public:
    string LeftRotateString(string str, int n) {
        if(str.size()==0)
            return str;
        if(n==0)
            return str;
        n=n%str.size();
        string temp;
        for(int i=0;i<n;i++){
            temp.push_back(str[i]);
        }  //在后来的思考中,str部分赋值可用  temp.assign(str,0,n); 替代,注意不是迭代器,而是int 型索引哦!
        str.erase(str.begin(),str.begin()+n);
        str.append(temp);
        return str;
    }
};

其他人的666的代码

//链接:[https://www.nowcoder.com/questionTerminal/12d959b108cb42b1ab72cef4d36af5ec](https://www.nowcoder.com/questionTerminal/12d959b108cb42b1ab72cef4d36af5ec)
//来源:牛客网

class Solution {

public:

string LeftRotateString(string str, int n) {

int len = str.length();

if(len == 0) return "";

n = n % len;

str += str;

return str.substr(n, len);

}

};
上一篇 下一篇

猜你喜欢

热点阅读