题目地址:https://leetcode.com/problems/reverse-string/#/description
简单理解:
很明显,就是一道字符串反转的题目,如input="hello",那么output=“ollleh"
我的解法:
1. 第一眼的想法就是使用一个临时的字符串temp,然后通过for循环依次将input的string 从最后一个字符到第一个添加到temp后面.这样做的复杂度是o(n).
代码如下:
class Solution {
public:
string reverseString(string s) {
string reversed;
for(int i = 0;i<s.length();i++){
reversed += s[s.length()-i-1];
}
return reversed;
}
};
2.很明显,我们可以把复杂度降低到o(n/2).即只需要将前半段和后半段互换即可.代码如下:
class Solution {
public:
string reverseString(string s){
for(auto i = 0;i<s.length()/2;i++){
swap(s[i],s[s.length()-1-i]);
}
return s;
}
};