557反转字符串中的单词III
题目描述
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1: 输入: “Let’s take LeetCode contest” 输出: “s’teL ekat edoCteeL tsetnoc” 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
题目给出的接口为:
class Solution {
public:
string
reverseWords(string s
) {
}
};
题目分析
以空格为标志将每段字符串取出来,倒置插入新的字符串。最后一段字符串后没有空格,所以直接倒置插入新字符串。
代码如下:
class Solution {
public:
string
reverseWords(string s
) {
string res
= "";
int pre
= 0 , pos
= 0;
while(s
[pos
] != 0){
if(s
[pos
] == ' ')
{
for(int i
= pos
- 1 ; i
>= pre
; i
--) res
+= s
[i
];
pos
++;
pre
= pos
;
res
+= ' ';
}
pos
++;
}
for(int j
= s
.size()-1 ; j
>= pre
; j
--) res
+= s
[j
];
return res
;
}
};