算法——回文(palindrome)

# 10-palindrome.py

import string

def is_palindrome(text: str) -> bool:
    ‘是否为回文‘
    # 1、先去除标点符号以及空格,并将所有字母小写化
    result = ‘‘
    for i in range(len(text)):
        if not text[i] in string.punctuation + ‘ ‘:
            result += text[i].lower()
    print(result)

    # 2、判断是否为回文
    n = len(result)
    for i in range(len(result) // 2):
        if result[i] != result[n-i-1]:
            return False
    return True

if __name__ == ‘__main__‘:
    print(is_palindrome(‘I prefer pi.‘))
    print(is_palindrome(‘A man, a plan, a canal: Panama.‘))
    print(is_palindrome(‘Resistance is futile!‘))
    

原文地址:https://www.cnblogs.com/noonjuan/p/11407841.html

时间: 2024-10-29 09:10:24

算法——回文(palindrome)的相关文章

hdu4513--Manacher算法--回文串的O(n)算法

腾讯的比赛的题目的质量都很高 特别喜欢这题目背景 每题都很有意思 这题 也蛮难的 因为n太多了 一定要用O(n)的回文串算法来求 我是在这里学习的  传送 一般的话 都是char数组 使用特殊字符 表示插入 开头和末尾也是特别的字符 末尾的话是 '\0' 这边的话 因为是Int数组  要注意下 0 和 末尾不能取相同值 这样会错的 插入的值 一定要在这个Height范围外 1 #include <iostream> 2 #include <algorithm> 3 using na

算法——回文解密,判断一个素组是否为回文

算法中,队列是先进先出原则,而栈是后进先出原则,栈限定只能在一端进行插入和删除操作,而栈的作用有哪些? 可以通过一组回文字符串来看:"xyzyx",同过栈来判断字符串是否是回文 案例:package test; /** * @author dayu 解密回文--栈 * @version 创建时间:2017年11月13日 下午2:15:01 * 类说明 */ public class zhan { //回文--一定有对称轴,所以一定是单数 public static void main(

一天一算法:回文判断

问题描述: 什么是回文?如,aha, adda,单ahah就不是回文,等等 如何判断一串字符串是回文呢? 这里的想法是:我们利用队列的方式,找到字符的中间的位置,将中间字符之前的全部入栈,然后全部出栈,与中间字符之后的字符进行比较,如果全部一样,那么就是回文. 代码: #include<iostream> #include <queue> #include <string.h> using namespace std; int main() { char str[] =

[算法]回文检测

链表的回文检测 有关链表的回文检测,用到的就是链表操作中常常用到的双指针的方法,找到链表的中点位置,然后依次对比两边的结点.但是在找链表的中点的时候要注意链表的总个数是偶数或者奇数的两种情况. 1.找链表的中点位置,并把中点以前的各个结点的值存入到栈中. 2.针对偶数或者奇数个链表结点,对中点结点做一个小的调整. 3.依次对比栈中结点的值后链表后半部分结点的值是否相等,决定是否是回文结构. 代码实现: bool isPalindrome(ListNode* head) { bool isPali

算法——回文串专题

双重回文数(复杂版) 题目链接:https://www.luogu.org/problemnew/show/P1207 回文串分割 题目链接:https://www.lintcode.com/problem/palindrome-partitioning/description 原文地址:https://www.cnblogs.com/czc1999/p/10362872.html

Manacher 入门+模板 回文串专用算法

Manacher 算法 回文串专用算法 manacher 人名,该算法的发明者.palindrome名词:回文. 博客推荐 https://www.cnblogs.com/lykkk/p/10460087.html,比较简洁,代码清晰. https://www.cnblogs.com/cloudplankroader/p/10988844.html, 一些细节的东西比较讲解比较细. 模板 //预处理函数,使得处理后的字符串长度为奇数,并且有一些比较好的性质 int init(char* s, c

LeetCode 5 迅速判断回文串的曼切斯特算法

题意 Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. Link: https://leetcode.com/problems/longest-palindromic-substring/ 翻译 给定一个字符串s,要求它当中的最长回文子串.可以假设s串的长度最大是1000. 样例 Example 1: Input:

【翻译】Longest Palindromic Substring 最长回文子串

原文地址: http://www.cnblogs.com/zhxshseu/p/4947609.html%20 转载请注明出处:http://www.cnblogs.com/zhxshseu/p/4947609.html 问题描述:Given a string S, find the longest palindromic substring in S. 这道题目是一个经典的动态规划DP http://challenge.greplin.com/问题,在面试中经常会被问到.为什么?因为这个问题可

英语回文

作者:涤墨链接:https://www.zhihu.com/question/34947176/answer/60781809来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 据说(未考证),当拿破仑战败,被流放到厄尔巴岛时,他对自己的医生说了这样一句回文(palindrome): Able was I ere I saw Elba.(直译:在我看到厄尔巴岛之前,我曾所向披靡) 这句话在翻译史上的各版本也是颇有趣味.最初钱歌川先生对此句的翻译是:「我在看到厄尔巴之前