在運行時,我想輸入兩種類型的數據類型,double和string。 其中一個條件是String應該以我輸入的順序彈出,而double會像通常的堆棧行爲LIFO一樣彈出。另一個條件是堆疊被限制爲最大尺寸10Stack問題:彈出一個模式
例如,一個運行實例
輸入Hello 1 World 2 blah blah 3 4 5
輸出Hello 5 World 4 blah blah 3 2 1
我的第一個問題是,有多少種方法是有沒有辦法解決這個問題? 我已經使用3個堆棧解決了這個問題,其中一個存儲double,一個存儲字符串,另一個用於反轉字符串順序。
我需要保存模式,以便程序知道雙打來自哪個順序,因此我將模式保存到字符串堆棧。由於堆棧的大小限制爲10,我需要以另一種方式保存圖案。
所以這是我的字符串堆棧將如何看起來像後推
- 你好*
- 世界*
- 等等
- 等等***
因此,在當第一次閱讀我需要在該堆棧位置進行特定的讀取,並將其從中提取出來。當我告訴程序下一個流行音樂是雙音節時,星號*留待以後使用。
我的第二個問題是,我想知道是否還有其他更優雅的解決方案來解決這個問題。由於我的解決方案將涉及一些字符串操作來解決這個問題。至於現在我實際上並沒有在字符串大小寫中使用pop函數,因爲它應該被使用。我用C++做了解決方案。
2010-12-13 20:13:28
- 否,堆棧是LIFO,FIFO被稱爲「隊列」。 –你是否必須使用堆棧或將其他結構做什麼? – casablanca 2010-12-13 20:13:56
@imz:啊是的,真的我會編輯它 – starcorn 2010-12-13 20:17:04