题目:
编写一个函数,其作用是将输入的字符串反转过来。
示例1:
输入: "hello" 输出: "olleh"
示例2:
输入: "A man, a plan, a canal: Panama" 输出: "amanaP :lanac a ,nalp a ,nam A"
首尾对调。
C代码:
void swap(char* a,char* b)
{
char temp = *a;
*a = *b;
*b = temp;
}
char* reverseString(char* s)
{
if (s[0] == '\0') return s;
char* pt1 = s;
char* pt2 = s + strlen(s) -1;
while (pt1 < pt2)
{
swap(pt1, pt2);
pt1++;
pt2--;
}
return s;
}
C++代码:
可以直接利用函数,不过就没意思了
class Solution {
public:
string reverseString(string s) {
reverse(s.begin(),s.end());
return s;
}
};
另一种利用迭代器,不过利用下标也是一样的
class Solution {
public:
string reverseString(string s) {
string::iterator left,right;
for (left = s.begin(),right = s.end()-1;left < right;left++,right--)
{
swap(*left,*right);
}
return s;
}
};
谢谢。