一种函数,它将存储的整数存储在堆栈中,并在没有重复序列的情况下反转它们

时间:2017-05-05 05:26:52

标签: python python-3.x

我正在尝试编写一个读取整数“num”的函数,将所有整数存储在堆栈中并以相反的顺序打印它们。但是,如果连续的数字相同,则只有其中一个存储在堆栈中。

这是我到目前为止所提出的,但我并没有得到我想要的东西。

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())

1 个答案:

答案 0 :(得分:0)

您的问题可能是string += int_str尝试将其更改为string = int_str

问题是你在字符串中构建整数。

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

现在,除非您输入12作为下一个输入,否则将追加下一个字符串。

此外,由于您只是在函数末尾循环count-1,因此您不会在堆栈中打印底部数字。

您的读取循环可能还有问题,因为如果您想要读取四个数字并且其中一个用户输入被拒绝,那么只有三个值将存储在堆栈中。