Python數據結構--一維開心消消樂


題目來源:中國大學MOOC-北京大學-數據結構與算法python版本

 

題目內容:

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

如果字符全部被消完,則輸出不帶引號的“None”

 

輸入格式:

一個字符串,可能帶有相鄰的相同字符,如“aabbbc”

 

輸出格式:

一個字符串,消去了相鄰的成對字符,如“bc”

 

輸入樣例1:

beepooxxxyz

輸出樣例1:

bpxyz

 

輸入樣例2:

kxkx

輸出樣例2:

kxkx

 

輸入樣例3:(這里bb被消了以后,第二個a挨上來了,所以兩個a也相鄰,同樣消去)

abbacddccc00

 

輸出樣例3:

None

 

解法1:

class stackTest:
    def __init__(self):
        self.items = []
    def isempty(self):
        return self.items == []
    def push(self, item):
        self.items.append(item)
    def pop(self):
        return self.items.pop()
    def peek(self):
        return self.items[-1]
    def size(self):
        return len(self.items)

def main():
    input_str = input()
    check_str = stackTest()
    for i in input_str:
		#空棧直接入棧
        if check_str.isempty(): 
            check_str.push(i)
            continue
		#棧頂字符與i一致,刪除棧頂數據,如果不一致,則繼續壓入棧內
        if check_str.peek() == i:
            check_str.pop()
        else:
            check_str.push(i)
    print(''.join(check_str.items))
    
main()

  

時間限制:500ms內存限制:32000kb

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM