精华内容
下载资源
问答
  • 本文实例讲述了Python针对给定字符串求解所有子序列是否为回文序列的方法。分享给大家供大家参考,具体如下: 问题: 给定一个字符串,得到所有的子序列,判断是否为回文序列 思路: 对字符串遍历切片即可 下面是...
  • 给定一个字符串,得到所有的子序列,判断是否为回文序列 思路: 对字符串遍历切片即可 下面是具体实现: #!usr/bin/env python #encoding:utf-8 ''' __AUthor__:沂水寒城 功能:对指定字符串寻找所有回文子...

    问题:

    给定一个字符串,得到所有的子序列,判断是否为回文序列

    思路:

    对字符串遍历切片即可

    下面是具体实现:


    #!usr/bin/env python
    #encoding:utf-8
    
    '''
    __AUthor__:沂水寒城
    功能:对指定字符串寻找所有回文子序列
    '''
    
    
    def is_huiwen(one_str_list):
        '''
        输入一个字符串列表,判断是否为回文序列
        '''
        if len(one_str_list)==1:
            return True 
        else:
            half=len(one_str_list)/2
            if len(one_str_list)%2==0:
                first_list=one_str_list[:half]
                second_list=one_str_list[half:]
            else:
                first_list=one_str_list[:half]
                second_list=one_str_list[half+1:]
            if first_list==second_list[::-1]:
                return True 
            else:
                return False
    
    
    def get_list_all_sub_list(num_list):  
        ''''' 
        输入一个列表,返回该列表所有的子列表,这里定义的空列表不属于子列表,故:子列表最小长度为1 
        '''  
        if len(num_list)==1:  
            return [num_list]  
        sub_list=get_list_all_sub_list(num_list[:-1])  
        extra=num_list[-1:]  
        temp_list=[]  
        for one in sub_list:  
            temp_list.append(one+extra)  
        return sub_list+temp_list  
    
    
    def slice_func(one_str):
        '''
        '''
        result_list=[]
        for i in range(1,len(one_str)):
            result_list.append(one_str[:i])
            result_list.append(one_str[i:])
        result_list+=list(one_str)
        result_list.append(one_str)
        return list(set(result_list))
    
    
    def main_func2():
        '''
        主调用函数
        '''
        str_list=['abdc','abba']
        for one_str in str_list:
            result_list=slice_func(one_str)
            print '-----------------------------------------------'
            for one in result_list:
                if is_huiwen(list(one)):
                    print one+'是回文序列'
    
    
    def main_func1():
        '''
        主调用函数
        '''
        str_list=['abdc','abba']
        for one_str in str_list:
            one_str_list=list(one_str)
            one_all_sub_list=get_list_all_sub_list(one_str_list)
            print '------------------------------------------------'
            print one_all_sub_list
            for one in one_all_sub_list:
                if is_huiwen(one):
                    print ''.join(one)+'是回文序列'
    
    
    if __name__ == '__main__':
        main_func2()


    结果如下:


    -----------------------------------------------
    a是回文序列
    c是回文序列
    d是回文序列
    b是回文序列
    -----------------------------------------------
    a是回文序列
    abba是回文序列
    b是回文序列
    [Finished in 0.3s]


    展开全文
  • python——回文函数(reversed)

    千次阅读 2019-06-27 16:29:49
    回文数:正向排列与反向...下面是一段简单的代码(判断输入的字符串是否为回文字符串): 上面代码中用了一个join()函数,该函数的作用是:连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)...

    回文数:正向排列与反向排列所得结果是相等的(即从左到右和从右到左的结果是相等的),例如:“123321”,“0000”等。

    reversed函数:反转一个序列对象,将其元素从后向前颠倒构建成一个新的迭代器

    下面是一段简单的代码(判断输入的字符串是否为回文字符串):

     

    上面代码中用了一个join()函数,该函数的作用是:连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串

    展开全文
  •  给定一个待判定的字符串列表,对其中的每个字符串进行判断,计算每个字符所有可能的回文序列数目 做法思想:  这里采取对单个字符串生成得到其全排列的方式,之后对每个排序字符串进行判断,统计结果输出即可 ...

    问题描述:

        给定一个待判定的字符串列表,对其中的每个字符串进行判断,计算每个字符所有可能的回文序列数目

    做法思想:

        这里采取对单个字符串生成得到其全排列的方式,之后对每个排序字符串进行判断,统计结果输出即可

    优、缺点:

        简单易懂易实现,但是消耗内存较多

    下面是具体的实现:

    #!usr/bin/env python
    #encoding:utf-8
    
    '''
    __Author__:沂水寒城
    功能:给定一个字符串求解所有可能的回文序列
    '''
    
    def huiwen(one_str):
        '''
        输入字符串,判断是否是回文序列,返回布尔值
        '''
        length=len(one_str)
        if length%2==0:
            half=length/2
            first_str=one_str[:half]
            second_str=''.join(list(one_str[half:])[::-1])
            if first_str==second_str:
                return True 
            else:
                return False
        else:
            half=(length+1)/2
            first_str=one_str[:half-1]
            second_str=''.join(list(one_str[half:])[::-1])
            if first_str==second_str:
                return True 
            else:
                return False
    
    
    def all_sorts(str_list):
        '''
        输入字符串列表,输出全排序列表
        '''
        if len(str_list) == 0 or len(str_list) == 1:
            return [str_list]   
        result = []
        for i in str_list:
            temp_list = str_list[:] #复制
            temp_list.remove(i)
            temp = all_sorts(temp_list) #使用递归 生成删掉一个元素的xs的全排列
            for one in temp:   #对temp中的每一项再进行遍历
                one[0:0] = [i]   #在index 0 的位置插入之前删去的i
                result.append(one)
        return result
    
    
    def judge_is_huiwen(new_list):
        '''
        输入全排序字符串列表输出可以组成的回文串数量
        '''
        count=0
        for one in new_list:
            if huiwen(one):
                count+=1
        return count
    
    
    def main_func(one_str_list):
        '''
        主调用函数,输入为一个待判定字符串列表,输出可以构成的回文序列数目
        '''
        for one_str in one_str_list:
            one_list=list(one_str)
            one_result_list=all_sorts(one_list)
            one_new_list=[''.join(one) for one in one_result_list]
            print '该字符串所有可能构成的回文序列数目为:', judge_is_huiwen(one_new_list)
    
    if __name__=='__main__':
        # 单个测试样例
        # one_str='12345'
        # one_list=list(one_str)
        # result_list=all_sorts(one_list)
        # new_list=[''.join(one) for one in result_list]
        # print '该字符串所有可能构成的回文序列数目为:', judge_is_huiwen(new_list)
        one_str_list=['aaabb','abcdef','aaa','adc']
        main_func(one_str_list)

    结果如下:


    该字符串所有可能构成的回文序列数目为: 24
    该字符串所有可能构成的回文序列数目为: 0
    该字符串所有可能构成的回文序列数目为: 6
    该字符串所有可能构成的回文序列数目为: 0


    展开全文
  • 给定一个字符串,判断该字符串中是否可以通过重新排列组合,形成一个回文字符串。...回文序列的特点是,最多只有一个元素出现了奇数次,其他元素都只能出现偶数次。 class Solution(object): ...

    给定一个字符串,判断该字符串中是否可以通过重新排列组合,形成一个回文字符串。

    示例 1:

    输入: "code"
    输出: false

    示例 2:

    输入: "aab"
    输出: true

    示例 3:

    输入: "carerac"
    输出: true

    思路:

    回文序列的特点是,最多只有一个元素出现了奇数次,其他元素都只能出现偶数次。

    class Solution(object):
        def canPermutePalindrome(self, s):
            """
            :type s: str
            :rtype: bool
            """
            record = dict()
            for i, char in enumerate(s):
                record[char] = record.get(char, 0) + 1
            
            odd_cnt = 0
            for key, val in record.items():
                if val % 2:
                    odd_cnt += 1
                    if odd_cnt > 1:
                        return False
            return True

     

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 设置dp为验证矩阵判断,dp[j][j+i]表示序列的i到j是否为回文序列 参考了他人的解法代码:回文序列判断条件: 1.字符串s[j] = s[i+j] 即 dp[j][j+i]=1 2.回文序列的内部也是回文序列即dp[j+1][i+j-1]=1 #############...
  • Python学习笔记:序列(字符串、列表、元组) Python最基本的数据结构是序列(sequence),序列里每个元素被分配一个序号,也称为索引,从0...简单应用:回文字符串判断。 方法一、利用内建函数reversed() 方...
  • 题目描述:回文字符串是指一个字符串从左到右与从右到左遍历得到的序列是相同的。例如“abcba“就是回文字符串,而"abcab"则不是回文字符串。 分析与解答: 最容易想到的方法为遍历字符串所有可能的子串(暴力法)...
  • 回文

    2020-12-06 16:27:03
    使用Python完成该程序,输入一个数字判断是否是回文数。 得分说明:程序无法运行扣不得分,判断正确满分。 运行效果: 示例一输入:12321 示例一输出:是回文数 示例二输入:3333 示例二输出:是回文数 示例三输入:...
  • 思想同上一篇博文,具体实现如下: #!usr/bin/env python #encoding:utf-8 ''' __AUthor__:沂水寒城 功能:对指定字符串寻找回文子序列的... 输入一个字符串列表,判断是否为回文序列 ''' if len(one_str_list)==1
  • 首先生成一个从0开始的整数无限序列 n = 0 while True: yield n n += 1 def _is_palindrome(n): 判断n是否为回文数,是就返回Ture,否就返回False L1 = list(str(n)) L2 = L1[:] # 利用列表的切片将L1复制出...
  • 如果要知道输入的数据是否为回文的方法,首先就要知道切片的概念。python 的切片 (slice) 作用: 从字符串序列中取出一部分相应的元素重新组成一个字符串 语法: 字符串[(开始索引b):(结束索引e)(:(步长s))] 注: () ...
  • python小白进阶之路二——数据类型入门练习。python学习数据类型课程之后,进行的课后练习及代码。包括1、奇偶数判断2、最小公倍数和最大公约数求解3、判断闰年4、判断回文序列5、素数判断6、统计句子中单词个数
  • 每日一题12013-回文

    2021-01-15 10:53:42
    “xyzyx”是一个回文字符串,所谓回文字符串就是指正读反读均相同的字符序列,如“席主席”、“记书记”、“aha”和“ahaha”均是回文,但“ahah”不是回文。输入一行字符(仅包含小写英文字母a~z)请判断这行字符串...
  • LeetCode.125.验证回文

    2019-02-28 20:52:16
    回文串就是一个正着读,和反着读都是一样的字符串。 解题思路,将字符串反转判断字符串是否一样。 这里介绍python的两个函数: filter() :函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新...
  • deque是一种双端队列,同时具有栈和队列的...如果想要写一个快速的判断回文的程序,只需要把字符串反转和原字符串进行比较。而Python没有对字符串进行反转的函数reverse(),但还是可以利用反向切片的方式进行反转,如下
  • Python蓝桥杯

    2021-03-07 15:58:05
    基础篇2.1 数列排序2.2 十六进制转八进制十六进制转十进制十进制转十六进制特殊回文数回文数2.7 水仙花数2.8 杨辉三角2.9 查找整数2.10 数列特征2.11 字母图形2.12 字串012.13 闰年判断2.14 阶乘计算解法一:直接...
  • 字符串的运算:字符串的索引语法:说明:作用:字符串的切片:英文(slice)语法:语法说明:Python3中常用的序列函数:字符串编码转换函数:整数转换为字符串函数字符串构造函数:几个小练习判断回文转义序列练习 字符串 字符串...
  • Python学习笔记3

    2020-08-31 01:27:37
    文章目录Python学习笔记3回文判断一、双端队列(deque)二、列表反向切片itertools迭代器函数无穷迭代器:itertools.count(start=0, step=1)itertools.cycle(iterable)itertools.repeat(object[, times])根据最短输入...
  • 一,回文判断续题目:输入一个五位数,使用字符串索引的方法判断是不是回文数上一次练习中,我们使用取余,地板除等操作,判断一个数是不是回文数,略显麻烦。当我们学过序列的索引和遍历之后,利用这两点,我们就...
  • 函数函数简介函数的参数参数传递不定长参数(序列)参数的拆包函数的返回值文档字符串作用域全局作用域函数作用域命名空间递归函数例题1:判断回文字符串例题2:汉诺塔问题高阶函数匿名函数闭包闭包形成的条件闭包的...
  • 回文字符串是指一个字符串从左到右与从右到左遍历得到的序列是相同的。例如“abcba“就是回文字符串,而"abcab"则不是回文字符串。 回文字符串给定一个字符串,求它最长的回文子串长度,例如输入字符串'35534321',...
  • 文章目录数列排序十六进制转八进制十六进制转十进制十进制转十六进制特殊回文数回文数特殊的数字杨辉三角形查找整数数列特征字母图形01字串闰年判断Fibonacci数列圆的面积序列求和A+B问题 本文定位是面向小白(我...
  • 现在需要用栈来处理回文数,所谓回文字符串就是指正读反读均相同的字符序列,如“席主席”、“记书记”、“aha”和“ahaha”均是回 文,但“ahah”不是回文。通过栈这个数据结构我们将很容易判断一个字符串是否为...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

python判断回文序列

python 订阅