如果我有兩個字符串說str1 & str2
如何使用Stack的push和pop操作組合兩個字符串?
str1 = I to cricket chess
str2 = like play and
我想要的輸出:
「我喜歡打板球和國際象棋」
可以這樣使用stack
push
和pop
操作來完成。算法應該獨立於編程語言。上面提到的字符串可以是任意長度的 。
如果我有兩個字符串說str1 & str2
如何使用Stack的push和pop操作組合兩個字符串?
str1 = I to cricket chess
str2 = like play and
我想要的輸出:
「我喜歡打板球和國際象棋」
可以這樣使用stack
push
和pop
操作來完成。算法應該獨立於編程語言。上面提到的字符串可以是任意長度的 。
這是非常簡單的。你只需要push
第一個字從第一串疊,然後push
從第二個字符串的第一個字,然後做第二個字是相同的,然後到第三話等
之後,你需要pop
來自堆棧中的每個元素和push
它到第二個堆棧,以反轉序列。然後你只需pop
從第二堆疊中的每個元素,並將其添加到結果字符串。
從你給什麼,你必須做出一些假設。
假設:
該算法將如下這樣:
我會說這是比我更好的解決方案,因爲你不必維護兩個單獨的索引遞減,這可能是容易出錯。我下注礦是更多的時間和空間高效(無第二堆疊,並且堆疊的沒有雙重遍歷),在是更容易出錯的費用。 – Alan
是的,但如果你使用隊列,而不是堆棧,可以省略第二階段。 – Lazin
隊列會使這個微不足道。我認爲整個想法是測試OP對LIFO性質的理解,同時處理解析句子的FIFO性質(即使它在兩個字符串之間分割)。 – Alan