原串翻转

来源:互联网 发布:js join 编辑:程序博客网 时间:2024/05/18 01:57

题目描述

请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。

给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。

测试样例:

"This is nowcoder"
返回:"redocwon si sihT"
思路:利用两个分别指向首字符和尾字符的iterator来实现首尾字符交换,更新“”首尾“”。


1
class Reverse {
2
public:
3
    string reverseString(string iniString) {
4
        string::iterator begin;
5
        string::iterator end;
6
        decltype(iniString.size()) size = iniString.size();
7
        if (size==0 || size==1)
8
            return iniString;
9
        begin = iniString.begin();
10
        end = iniString.end()-1;
11
        while(begin < end){//string和vector 的iterator have lessthan<,>operetor.
12
            char c = *begin;
13
            *begin = *end;
14
            *end = c;
15
            ++begin;
16
            --end;
17
        }
18
        return iniString;
19
    }
20
};
您的代码已保存

0 0