7.Deque的应用案例-回文检查
- 回文检测:设计程序,检测一个字符串是否为回文。
- 回文:回文是一个字符串,读取首尾相同的字符,例如,radar toot madam。
- 分析:该问题的解决方案将使用 deque 来存储字符串的字符。我们从左到右处理字符串,并将每个字符添加到 deque 的尾部。在这一点上,deque 像一个普通的队列。然而,我们现在可以利用 deque 的双重功能。 deque 的首部保存字符串的第一个字符,deque 的尾部保存最后一个字符。我们可以直接删除并比较首尾字符,只有当它们匹配时才继续。如果可以持续匹配首尾字符,我们最终要么用完字符,要么留出大小为 1 的deque,取决于原始字符串的长度是偶数还是奇数。在任一情况下,字符串都是回文。

from basic.deque import Deque def palchecker(aString):
chardeque = Deque() for ch in aString:
chardeque.addRear(ch) stillEqual = True while chardeque.size() > 1 and stillEqual:
first = chardeque.removeFront()
last = chardeque.removeRear()
if first != last:
stillEqual = False return stillEqual print(palchecker("lsdkjfskf"))
print(palchecker("radar"))
7.Deque的应用案例-回文检查的更多相关文章
- 07 Deque的应用案例-回文检查
		- 回文检测:设计程序,检测一个字符串是否为回文. - 回文:回文是一个字符串,读取首尾相同的字符,例如,radar toot madam. - 分析:该问题的解决方案将使用 deque 来存储字符串 ... 
- 七.Deque的应用案例-回文检查
		- 回文检测:设计程序,检测一个字符串是否为回文. - 回文:回文是一个字符串,读取首尾相同的字符,例如,radar toot madam. - 分析:该问题的解决方案将使用 deque 来存储字符串 ... 
- python--使用双向队列结构检查回文
		这个简单,队列可两边进两边出. # coding = utf-8 # 双向进出队列 class Deque: def __init__(self): self.items = [] def is_em ... 
- shell脚本,检查给出的字符串是否为回文
		[root@localhost wyb]# .sh #!/bin/bash #检查给出的字符串是否为回文 read -p "Please input a String:" numb ... 
- FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)
		题目描述: 如果给定的字符串是回文,返回true,反之,返回false.如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文).注意你需要去掉 ... 
- WHU 583 Palindrome ( 回文自动机 && 本质不同的回文串的个数 )
		题目链接 题意 : 给你一个串.要你将其划分成两个串.使得左边的串的本质不同回文子串的个数是右边串的两倍.对于每一个这样子的划分.其对答案的贡献就是左边串的长度.现在要你找出所有这样子的划分.并将贡献 ... 
- manacher算法_求最长回文子串长度
		很好的总结,转自: http://blog.csdn.net/dyx404514/article/details/42061017 总结为:两大情况,三小情况. 两大情况:I. i <= p 1 ... 
- 链表回文串判断&&链式A+B
		有段时间没有练习了,链表回文串判断用到了栈.链式A+B将没有的项用0补充.链表有没有头节点,及结点和链表的区别,即pNode和pHead. //#include<iostream> //u ... 
- lintcode 中等题:Palindrome Linked List 回文链表
		题目 回文链表 设计一种方式检查一个链表是否为回文链表. 样例 1->2->1 就是一个回文链表. 挑战 O(n)的时间和O(1)的额外空间. 解题 法一: 再定义一个链表,存放链表反转的 ... 
随机推荐
- CAlayer一
			// // ViewController.m // Layer // // Created by City--Online on 15/4/9. // Copyright (c) 2015年 City ... 
- [转载]前端——实用UI组件库
			https://www.cnblogs.com/xuepei/p/7920888.html Angular UI 组件 ngx-bootstrap 是一套Bootstrap 组件 官网:https:/ ... 
- Mac 自带的Apache php 狼神的
			开启服务:sudo /usr/sbin/apachectl start 停止服务:sudo /usr/sbin/apachectl stop 重启服务:sudo /usr/sbin/apachectl ... 
- org.hibernate.HibernateException: Wrong column type
			这个问题一般出现在我们使用定长的字符串作为主键(其它字段也可能)的时候,如数据库中的ID为char(16).虽然很多资料上都说不推荐这样做,但实际上我们在做很多小case的时候自己为了方便也顾不得那么 ... 
- [android] WebView自定义浏览器
			在布局文件中添加<EditText/>和<Button/>控件, 在布局文件中添加<WebView/>控件 在Activity中获取WebView对象 调用WebV ... 
- Navicat相关应用及注意事项
			一.MySQL数据类型 1.数值型 SMALLINT: 2个字节 INT: 4个字节 // age int(10) INTEGER:INT的同义词 BIGINT : 8个字节 FLOAT : ... 
- Java - List总结
			Java提高篇(三二)-----List总结 前面LZ已经充分介绍了有关于List接口的大部分知识,如ArrayList.LinkedList.Vector.Stack,通过这几个知识点可以对List ... 
- Codeforces485D(SummerTrainingDay01-K)
			D. Maximum Value time limit per test:1 second memory limit per test:256 megabytes input:standard inp ... 
- POJ2533(KB12-N LIS)
			Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 50827 Acc ... 
- 集合框架三(List和Set的补充(不加泛型))
			List List存放的元素有序,可重复 List list = new ArrayList(); list.add("123"); list.add("456" ... 
