问题描述:
Write a function that reverses a string. The input string is given as an array of characters char[]
.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
You may assume all the characters consist of printable ascii characters.
Example 1:
Input: ["h","e","l","l","o"] Output: ["o","l","l","e","h"]
Example 2:
Input: ["H","a","n","n","a","h"] Output: ["h","a","n","n","a","H"]
源码:
这是个easy题目。
方案一:
最简单的就是调STL的函数recerse,一步解决。
class Solution {
public:
void reverseString(vector<char>& s) {
reverse(s.begin(), s.end());
}
};
方案二:
另一个方案也比较简单,中间为轴对称互换一下:
class Solution {
public:
void reverseString(vector<char>& s) {
int len = s.size();
if (len<2) {
return;
}
for (int i=0; i<len/2; i++) {
char tmp = s[i];
s[i] = s[len-1-i];
s[len-1-i] = tmp;
}
}
};