zoukankan      html  css  js  c++  java
  • Byte of Python学习笔记(2)——回文练习

      Byte of Python 第111页有关回文的作业练习,原题为:要想检查文本是否属于回文需要忽略其中的标点、空格与大小写。例如,“Rise to vote, sir.”是一段回文文本,但是我们现有的程序不会这么认为。你可以改进上面的程序以使它能够识别这段回文吗?如果你需要一些提示,那么这里有一个想法 :使用一个元组 来保存所有需要禁用的字符,然后使用成员资格测试来确定一个字符是否应该被移除,即 forbidden = ( ! ,? , . , ...)——原书注

      问题的关键在于如何找出字符串中的特殊字符,可以采用提示中的办法,需要注意的一点是删除了一个元素之后,原来的数组会改变,因此要注意遍历过程中的序号的问题。

      我的代码如下:

    '''This is the readme of this project!
    
    Are you OK?'''
    
    forbindden_word = (' ',',','.','!','//','?')
    def ignore_word(text):     #去除忽略的特殊字符
        strdemo = list(text)
        count = 0
        for i in list(range((len(strdemo)))):
            if strdemo[i-count] in forbindden_word:
                del strdemo[i-count] #删除特殊字符
                count += 1
        result = ''.join(strdemo)
        return result
    def reverse(text):
            return text[::-1]
    def is_reverse(text):   #判断是否为回文
            return text == reverse(text)
    
    something = input('Please input some text:')
    if is_reverse(ignore_word(something)):
        print(ignore_word(something))
        print('Yes!This is a reverse sentense.')
    else :
        print(ignore_word(something))
        print('Oh!No!This is not a reverse sentense!')
  • 相关阅读:
    深入理解C++的动态绑定和静态绑定
    【转载】“惊群”,看看nginx是怎么解决它的
    352. Data Stream as Disjoint Intervals
    lambda
    auto
    sizeof(类)
    private是自己私有的,protected是可以让孩子知道的,public是公开的
    【转载】C++ typedef用法小结
    string char * const char *之间的互相转换
    【转载】Web Service 的工作原理
  • 原文地址:https://www.cnblogs.com/fengf1/p/7811550.html
Copyright © 2011-2022 走看看