python--使用双向队列结构检查回文
这个简单,队列可两边进两边出。
# coding = utf-8
# 双向进出队列
class Deque:
    def __init__(self):
        self.items = []
    def is_empty(self):
        return self.items == []
    def size(self):
        return len(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 pal_check(check_str):
    deque = Deque()
    for item in check_str:
        deque.add_front(item)
    is_pal = True
    # 如果奇数文字,最后一个可不用对比
    while deque.size() > 1 and is_pal:
        # 比较前端和后端进出队列是否相同
        if deque.remove_front() != deque.remove_rear():
            is_pal = False
    return is_pal
print(pal_check('radar'))
print(pal_check('toot'))
print(pal_check('tooth'))
print(pal_check('4356sdfgdsad678'))
python--使用双向队列结构检查回文的更多相关文章
- 刚开始学python——数据结构——“自定义队列结构“
		
自定义队列结构 (学习队列后,自己的码) 主要功能:用列表模拟队列结构,考虑了入队,出队,判断队列是否为空,是否已满以及改变队列大小等基本操作. 下面是封装的一个类,把代码保存在myQueue.py ...
 - 简单介绍python的双向队列
		
介绍 大家都知道利用 .append 和 .pop 方法,我们可以把列表当作栈或者队列来用(比如,把 append 和 pop(0) 合起来用,就能模拟栈的“先进先出”的特点).但是删除列表的第一个元 ...
 - FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)
		
题目描述: 如果给定的字符串是回文,返回true,反之,返回false.如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文).注意你需要去掉 ...
 - 【python实例】判断是否是回文数
		
""" 输入一个数,判断一个这个数是否是回文数.例如:121,这个数反过来还是121,所以这个是回文数: 再如:134,这个数反过来是431,所以这不是一个回文数: 12 ...
 - python统计英文文本中的回文单词数
		
1. 要求: 给定一篇纯英文的文本,统计其中回文单词的比列,并输出其中的回文单词,文本数据如下: This is Everyday Grammar. I am Madam Lucija And I a ...
 - 利用python的双向队列(Deque)数据结构实现回文检测的算法
		
#!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...
 - 判断回文字符串、回文链表、回文数(python实现)
		
所谓回文字符串,就是正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.即是对称结构 判断回文字符串 方法一: def is_palin ...
 - hysbz3676 回文串 回文自动机
		
回文自动机模板题 头铁了一下午hdu6599,最后发现自己的板有问题 先放这里一个正确性得到基本确认的板,过两天肝hdu6599 #pragma GCC optimize(2) #include< ...
 - python中使用双端队列解决回文问题
		
双端队列:英文名字:deque (全名double-ended queue)是一种具有队列和栈性质的抽象数据类型. 双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行. 双端队列可以在 ...
 
随机推荐
- shell-自动按省市建立文件夹,并在每个城市下创建当前日期文件夹
			
Code: #!/bin/bash date=`date +%Y%m%d` ProName="广东市" CityName="广州市 汕尾市 阳江市 揭阳市 茂名市 江门市 ...
 - Pyperclip could not find a copy/paste mechanism for your system.
			
sudo apt-get install xsel sudo apt-get install xclip pip install gtk to install the gtk Python modul ...
 - Python 编程核心知识体系(REF)
			
Python 编程核心知识体系: https://woaielf.github.io/2017/06/13/python3-all/ https://woaielf.github.io/page2/
 - BCG界面库
			
之前用过BCG界面库中的表格控件,深感其强大,现在再来用一下其它的. 一. 关于BCGControlBar. BCGControlBar是一个基于MFC的扩展库,您可以通过完全的用户化操作构成一些 ...
 - hibernate框架学习之数据查询(QBC)
			
lQBC(Query By Criteria)是一种Hibernate中使用面向对象的格式进行查询的计数 lQBC查询方式步骤 •获取Session对象 •初始化Criteria对象(使用Sessio ...
 - FFmpeg configure: rename cuda to ffnvcodec 2018-03-06
			
FFmpeg version of headers required to interface with Nvidias codec APIs. Corresponds to Video Codec ...
 - 生产环境elasticsearch5.0报错IllegalArgumentException: number of documents in the index cannot exceed 2147483519的处理
			
最近几天的push:user:req数据写不到集群,报错如下: [--13T09::,][DEBUG][o.e.a.b.TransportShardBulkAction] [yunva_etl_es8 ...
 - Linux i2c 读写程序
			
/* This software uses a BSD license. Copyright (c) 2010, Sean Cross / chumby industriesAll rights re ...
 - 51nod--1264 线段相交 (计算几何基础, 二维)
			
题目: 1264 线段相交 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为 ...
 - Webapi 跨域 解决解决错误No 'Access-Control-Allow-Origin' header is present on the requested resource 问题
			
首先是web端(http://localhost:53784) 请求 api(http://localhost:81/api/)时出现错误信息: 查看控制台会发现错误:XMLHttpRequest c ...