我的代码,尝试着把前后两个指针都放到for循环里写了,代码确实好看了一些:
class Solution {
public:
string reverseString(string s) {
for(int start = 0,end = s.size() - 1; start < end; ++start,--end)
{
swap(s[start], s[end]);
}
return s;
}
};
还看到别人的一种写法,借助STL库:
class Solution {
public:
string reverseString(string s) {
return string(s.rbegin(), s.rend());
}
};
这里用到的s.rbegin()是反向迭代器,指向容器的最后一个元素。s.rend()也是反向迭代器,指向第一个元素前面的位置。用了string的其中一种构造函数:string(Iter begin, Iter end);
当然了,还有更直接一点的STL库可以用:
class Solution {
public:
string reverseString(string s) {
reverse(s.begin(), s.end());
return s;
}
};