LeetCode 151 翻轉字串裡的單詞

2022-08-29 17:24:14 字數 1062 閱讀 4484

給定乙個字串,逐個翻轉字串中的每個單詞。

示例 1:

輸入: "the sky is blue"

輸出: "blue is sky the"

示例 2:

輸入: "  hello world!  "

輸出: "world! hello"

解釋: 輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。

示例 3:

輸入: "a good   example"

輸出: "example good a"

解釋: 如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含乙個。

說明:

高階:請選用 c 語言的使用者嘗試使用 o(1) 額外空間複雜度的原地解法。

本題同【劍指offer】面試題58 - i. 翻轉單詞順序

通過空格分割單詞並放入棧中,然後依次從棧中取出。

時間複雜度:o(n)

空間複雜度:o(n)

class solution 

while (!st.empty())

res += st.top();

st.pop();

}return res;

}};

將字串放入vector中,然後從後向前遍歷。

class solution 

for (int i = svec.size() - 1; i >= 0; --i)

return res;

}};

從前向後,先對每個單詞反轉,再對整個句子反轉。

時間複雜度:o(n)

空間複雜度:o(1)

class solution 

if (!tmp.empty())

}reverse(res.begin(), res.end());//對整個句子反轉

return res;

}};

LeetCode 151 翻轉字串

給定乙個字串,逐個翻轉字串中的每個單詞。示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello world 輸出 world hello 解釋 輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。示例 3 輸入 a good ...

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 再這裡需要逐一的是輸入的字串可以在前面或者後面包含多餘的空格,但反轉後的單詞間的空格只能減少到乙個。思路 在這裡考慮進行兩次翻...