题目
个人解法
使用StringBuilder将前n个字符和剩余字符分别存储在a,b中,返回b拼接上a后的字符串即可。
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder a = new StringBuilder();
StringBuilder b = new StringBuilder();
for(int i = 0 ;i < s.length(); i++){
if(i < n){
a.append(s.charAt(i));
}
else{
b.append(s.charAt(i));
}
}
return new String(b.toString()+a.toString());
}
}
不申请额外空间的解法
先将前n个字符反转,再将剩余字符反转,最后将整个字符串反转。
class Solution {
public:
string reverseLeftWords(string s, int n) {
reverse(s.begin(), s.begin() + n);
reverse(s.begin() + n, s.end());
reverse(s.begin(), s.end());
return s;
}
};