2017-05-05 55 views
0

我試圖寫一個函數讀取整數的「民」,存儲在堆棧中的所有整數和打印它們以相反的順序的功能。但是,如果連續的數字相同,則只有其中一個將被存儲在堆棧中。,存儲inputed堆棧中的整數和逆轉他們不重複的序列

這是我想出來的,到目前爲止什麼,但我不太得到我想要的。

def read_integers(num): 
    s = Stack() 
    count = 0 
    string = "" 
    for i in range(num): 
     int_str = input("Enter an integer:") 
     if int_str != string: 
      string += int_str 
      s.push(int_str) 
      count += 1 


    for i in range(count-1): 
     print(s.pop()) 

回答

0

你的問題可能是string += int_str嘗試將其更改爲string = int_str

問題是你正在建立你的字符串中的整數。

string = ""  # initially 
string = "1" # after first input 
string = "12" # after second input 

現在,除非你鍵入12作爲下一個輸入的下一個字符串將被追加。

此外,由於你只在函數結束遍歷count-1不打印在堆棧底部的數量。

也有可能,因爲如果你想讀四個數字和用戶輸入一個被拒絕,那麼只有三個值將被存儲在堆棧中與您的讀取循環有問題。