zoukankan      html  css  js  c++  java
  • python中使用双端队列解决回文问题

      双端队列:英文名字:deque (全名double-ended queue)是一种具有队列性质的抽象数据类型

    双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行。

      双端队列可以在队列任意一端入队出队。此外,经常还会有一个查看(Peek)操作,返回该端的数

    据而不将其出队。

      python的实现代码:

    class Deque:
            def __init__(self):
                    self.items = []
            def is_empty(self):
                    return self.items == []
            def add_front(self,item):
                    self.items.append(item)
            def add_rear(self,item):
                    self.items.insert(0,item)
            def remove_front(self):
                    return self.items.pop()
            def remove_rear(self):
                    return self.items.pop(0)
            def size(self):
                    return len(self.items)

      双端队列的特性决定了它很容易解决经典的回文问题。这里就给出源码,仅供参考:

    from Deque import *
    
    def pal_checker(a_string):
            char_deque = Deque()
    
            for ch in a_string:
                    char_deque.add_rear(ch)
    
            still_equal = True
              
            while char_deque.size() > 1 and still_equal:
                    first = char_deque.remove_front()
                    last = char_deque.remove_rear()
                    if first != last:
                            still_equal = False
                 
            return still_equal
    
    print(pal_checker("lsdkjfskf"))
    print(pal_checker("radar"))
  • 相关阅读:
    hive高阶函数和采样-优化
    zookeeper搭建
    hive常用函数和建表
    hive常用函数-建表-jdbc
    hadoop远程调试和配置HA
    hadoop-MR-排序
    python spark
    jenkins安装
    beetlsql
    spark页面单跳转化率
  • 原文地址:https://www.cnblogs.com/dylancao/p/8084565.html
Copyright © 2011-2022 走看看