leetcode 反转字符串 (C++实现)

leetcode 反转字符串 (C++实现)

  • 题目内容
  • 解法

题目内容

题目内容如下1

编写一个函数,其作用是将输入的字符串反转过来。
示例 1:
输入: “hello”
输出: “olleh”
示例 2:
输入: “A man, a plan, a canal: Panama”
输出: “amanaP :lanac a ,nalp a ,nam A”

解法

下面给出一个比较简单的解法。思路为,从输入字符串的末尾开始对每一个字符遍历,将得到的字符存入输出字符串,存入的位置从第一个字符开始递增。
代码如下:

// An highlighted block
class Solution {
public:
    string reverseString(string s) {
        int length = s.size();
        string res;
        res.reserve(length);//为输出字符串分配与输入字符串相同大小的空间
        int i= 0;
        for(i = length-1;i >= 0 ;i--){
            res[length-i-1] = s[i];
        }
        res[length-i-1] = '\0';//字符串以'\0'结尾
        return res;
    }
};

值得注意的是,提前为输出字符串分配相应的空间;字符串以’\0’结尾。

你可能感兴趣的:(LeetCode)