给定一个字符串,逐个翻转字符串中的每个单词。
示例 1:
输入: "the sky is blue"
输出: "blue is sky the"
示例 2:
输入: " hello world! "
输出: "world! hello"
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
示例 3:
输入: "a good example"
输出: "example good a"
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
思路:
1.首先得去除多余空格,双指针法,快慢指针,类似于数组中的移除元素,当快指针不为空格时就存到slow上,并且在fast找到字母时判断此时slow是不是在句首,不然的话,要加个空格;当fast比size小,并且一直为字母时,就一直赋给slow;resize改变原字符串大小,resize(slow)
2.写个反转字符串的函数
3.先反转整个字符串
4.用i去遍历,当找到一个空格时,就反转一个,或者就只有一个单词(i==s.size())
class Solution {
public:
void UniqueSpace(string& s){
int slow=0;
for(int fast=0;fast<s.size();fast++)