Python栈的应用:回文判断

2023-04-10 00:00:00 python 判断 回文

回文是指正向和反向都相同的字符串,如“level”、“racecar”等。在Python中,我们可以使用栈来判断一个字符串是否为回文。

算法步骤如下:

  1. 将字符串中的所有字符依次入栈。

  2. 依次出栈每个字符,组成一个新的字符串。

  3. 判断原始字符串和新字符串是否相同,如果相同,则说明是一个回文,否则不是。

代码演示如下:

def is_palindrome(string):
    stack = []
    for char in string:
        stack.append(char)
    reverse_string = ''
    while stack:
        reverse_string += stack.pop()
    if reverse_string == string:
        return True
    else:
        return False

# 测试样例
print(is_palindrome('pidancode.com')) # False
print(is_palindrome('level')) # True
print(is_palindrome('皮蛋编程')) # True

上面的代码中,我们使用了一个栈来保存字符串中的每个字符,然后再从栈顶依次出栈,得到一个新的反转字符串。最后,我们比较反转字符串和原始字符串是否相同,如果相同,则说明是一个回文,否则不是。

需要注意的是,我们在比较两个字符串是否相等时,不能直接使用==运算符,因为这样会比较字符串的地址,而不是字符串的内容。我们需要使用字符串的equals()方法来比较字符串的内容。在Python中,我们可以直接使用==运算符来比较两个字符串是否相等。

相关文章