Python資料結構與演算法練習 字母消消樂

2021-10-03 23:30:05 字數 1078 閱讀 8638

題目內容:

開心消消樂我們都熟悉,我們可以用剛學過的棧來做乙個「一維」的開心消消樂遊戲,這個遊戲輸入一串字元,逐個消去相鄰的相同字元對。

如果字元全部被消完,則輸出不帶引號的「none」

具體**如下:

# -*- 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(

)

題目來自中國大學mooc中北京大學陳斌副教授的mooc:《資料結構與演算法python版》

資料結構與演算法練習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...