題目內容:
開心消消樂我們都熟悉,我們可以用剛學過的棧來做乙個「一維」的開心消消樂遊戲,這個遊戲輸入一串字元,逐個消去相鄰的相同字元對。
如果字元全部被消完,則輸出不帶引號的「none」
具體**如下:
題目來自中國大學mooc中北京大學陳斌副教授的mooc:《資料結構與演算法python版》# -*- coding: utf-8 -*-
#by antinsnow
class
stackdt
:def
__init__
(self)
: self.items =
defisempty
(self)
:return self.items ==
defpush
(self, item)
:def
pop(self)
:return self.items.pop(
)def
peek
(self)
:return self.items[-1
]def
size
(self)
:return
len(self.items)
defmain()
: inputstr =
input()
checkstr = stackdt(
)for i in inputstr:
if checkstr.isempty():
#如果棧為空,則直接壓入棧內
checkstr.push(i)
continue
if checkstr.peek(
)== i:
#如果棧頂字元與i一致,刪除棧頂資料,如果不一致,則繼續壓入棧內
checkstr.pop(
)else
: checkstr.push(i)
print(''
.join(checkstr.items)
)
main(
)
資料結構與演算法練習18
首先判斷字串如果長度為0或1就直接返回它的長度。然後用head指向每次子串的首位置,rear指向末位置的下乙個位置,子串的長度就是rear head。雙層for迴圈,外迴圈 i 遍歷1到s.length,內迴圈 j 判斷當前位置 i 是否等於head到rear間的乙個字元,如果相等,就令head j...
資料結構與演算法練習27
和課程表1的思路一模一樣,只是加個返回陣列。我這是用鍊錶,每次從佇列中彈出數時就加入鍊錶中,最後返回之前先判斷是否可以學完,再返回。public int findorder int numcourses,int prerequisites return lgx.toarray int a numco...
資料結構與演算法練習33
直接按行排序,用flag標識是往下走還是往上,直到行數為0或numrows才變。public string convert string s,int numrows int row 0 記錄當前在哪一行。bool flag false 在第一行或最後一行的時候要轉向。true往下,false往上。f...