编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
你可以假设数组中的所有字符都是ASCII码表中的可打印字符。
class Solution {
public:
void reverseString(vector<char>& s) {
int n=s.size();
for(int i=0;i<n/2;i++)
{
swap(s[i],s[n-1-i]);
}
}
};
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
class Solution {
public:
string reverseWords(string s) {
int n=s.length();
int st=0,ed=0;
while(ed<n)
{
while(ed<n&&s[ed]!=' ')
{
ed++;
}
for(int i=st;i<(st+ed)/2;i++)
{
swap(s[i],s[ed-1-i+st]);
}
st=ed+1;
ed+=1;
}
return s;
}
};