給定乙個字串,逐個翻轉字串中的每個單詞。
示例 1:
輸入: "the sky is blue"
輸出: "blue is sky the"
示例 2:
輸入: " hello world! "
輸出: "world! hello"
解釋: 輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。
示例 3:
輸入: "a good example"
輸出: "example good a"
解釋: 如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含乙個。
說明:無空格字元構成乙個單詞。
輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。
如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含乙個。
高階:請選用 c 語言的使用者嘗試使用 o(1) 額外空間複雜度的原地解法。
思路: 先將單詞放進vectorstr 中,然後再對 str 進行翻轉,最後再加上空格輸出。
時間複雜度o(n), 空間複雜度o(n)。
class solution
else
continue;
}else
}// 如果只有空格,則直接退出
if(strtemp == "" && str.size() == 0)
return strtemp;
// 判斷最後乙個單詞是否存在。
if(strtemp != "")
// 用迭代器進行翻轉
vector::iterator start = str.begin();
vector::iterator end = str.end();
--end; // 迭代器最後是null, 不是最後乙個元素
while(start < end)
// 整合輸出
string res;
int i = 0;
for(; i < str.size() - 1; ++i)
return res += str[i];}};
Leetcode 151 翻轉字串
給定乙個字串,逐個翻轉字串中的每個單詞。示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello world 輸出 world hello 解釋 輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。示例 3 輸入 a good ...
leetcode151翻轉字串單詞
leetcode151.翻轉字串裡的單詞 題目描述 給定乙個字串,逐個翻轉字串中的每個單詞 示例 輸入 the sky is blue 輸出 blue is sky the 再這裡需要逐一的是輸入的字串可以在前面或者後面包含多餘的空格,但反轉後的單詞間的空格只能減少到乙個。思路 在這裡考慮進行兩次翻...
LeetCode151 翻轉字串裡的單詞
題目描述 給定乙個字串,逐個翻轉字串中的每個單詞。示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello world 輸出 world hello 解釋 輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。示例 3 輸入 a ...