LeetCode - Reverse String

来源:互联网 发布:直播特效声音软件 编辑:程序博客网 时间:2024/06/05 21:11

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;    }};
0 0
原创粉丝点击