给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
string reverseWords(string s) {
int front = 0;
for(int i = 0; i <= s.length(); ++i){
if(i == s.length() || s[i] == ' '){
reverse(&s[front], &s[i]);
front = i + 1;
}
}
return s;
}
reverse()函数
c++ < algorithm > 中定义的reverse函数用于反转在[first,last)范围内的顺序 (传地址)
例如,交换vector容器中元素的顺序
vector<int> v={1,2,3,4,5};
reverse(v.begin(),v.end());//v的值为5,4,3,2,1
当然,你也可以通过它方便的反转string类的字符串
string str="C++REVERSE";
reverse(str.begin(),str.end());//str结果为ESREVER++C
单引号是char类型,双引号是字符串类型。