您的位置:首页 > 其它

LeetCode - Reverse String

2016-04-22 23:11 357 查看

Question

Link : https://leetcode.com/problems/reverse-string/

Write a function that takes a string as input and returns the string reversed.

Example:

Given s = “hello”, return “olleh”.

Code

哈哈,第一个最狗血的版本就是调用接口直接逆序字符串了。(C++ : 12ms)

class Solution {
public:
string reverseString(string s) {
reverse(s.begin(), s.end());
return s;
}
};


但这肯定不是这题的存在的意义所在么。。

本着学习的思路我们还是可以用多几种方式实现的么。。

所以就来了第二种思路。(C++ : 12ms)

class Solution {
public:
string reverseString(string s) {
string res;
for(int i = s.size() - 1; i >= 0; i--)
res += s[i];
return res;
}
};


上面的版本可能需要额外的空间复杂度,所以我们想着能不能直接就在原字符串上操作。所以有了这个版本。(C++ : 12ms)

class Solution {
public:
string reverseString(string s) {
char ch;
int len = s.size();
int hlen = len / 2;
for(int i = 0; i < hlen; i++){
ch = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = ch;
}
return s;
}
};

//同一种思路的实现
class Solution {
public:
string reverseString(string s) {
int i = 0, j = s.size() - 1;
while(i < j){
swap(s[i++], s[j--]);
}
return s;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode