利用双端队列解决回文词算法

利用双端队列解决回文词算法,第1张

概述利用双端队列解决回文算法

什么是回文词:

指正读和倒读都是一样的词,

中文如:

上海自来水来自海上

山东落花生花落东山

英文如:

eve,eye,ewe(母羊),gig(马车),level,madam,minim(量滴)

什么是双端队列?

deque,全名double-ended queue)是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端d出,其限定插入和删除 *** 作在表的两端进行。

双端队列并不具有内在liFO或者FIFO的特性,如果使用双端队列来模拟栈或者队列,需要使用者自行维护 *** 作的一致性。

代码如下:

class Deque():    def __init__(self):        self.items=[]    # 判断双端队列是否为空    def isEmpty(self):        return len(self.items)    # 往队首中加值    def addtop(self,item):        self.items.append(item)    # 往队尾中加值    def addLast(self,item):        self.items.insert(0, item)    # 从队首中移除值    def removetop(self):        return self.items.pop()    # 从队尾中移除值    def removeLast(self):        return self.items.pop(0)    # 双端队列的大小    def size(self):        return len(self.items)def palchecker(str):    dobj=Deque()    for s in str:        dobj.addtop(s)    mark=True    while dobj.size()>1 and mark:        top_str=dobj.removetop()        last_str=dobj.removeLast()        if top_str!=last_str:            mark=False    return markif __name__ == '__main__':    print(palchecker('abababa'))    print(palchecker('上海自来水来自海上'))    print(palchecker('山东落花生花落东山'))    print(palchecker('山东'))


总结

以上是内存溢出为你收集整理的利用双端队列解决回文词算法全部内容,希望文章能够帮你解决利用双端队列解决回文词算法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1198448.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存