四.反转字符串
给出一个字符串并输入n,要求将n个字符放到原本字符串后面
第一时间想到的做法基本都是,循环内读取前n个字符一一加到后面然后删除前面,但是这样涉及到的时间复杂度是O(n),所以有更好的做法可以优化到时间O(1)空间O(n)
即先整体反转,再将前size-n个字符和后面n个字符看做两部分分别反转
class Solution{
public:
string leftRotateString(string str,int n){
reverse(str.begin(),str.end());
reverse(str.begin(),str.begin()+str.size()-n);
reverse(str.begin()+str.size()-n,str.end());
return str;
}
}