美文网首页
双端队列回文词判定

双端队列回文词判定

作者: 清水秋香 | 来源:发表于2020-02-20 21:59 被阅读0次
    • 回文词”判定
      ❖ “回文词”指正读和反读都一样的词 如radar、madam、toot
      中文“上海自来水来自海上”
      “山东落花生花落东山”
      ❖ 用双端队列很容易解决“回文词”问题 先将需要判定的词从队尾加入deque
      再从两端同时移除字符判定是否相同,直到 deque中剩下0个或1个字符
    from pythonds.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("lsdkjfakf"))
    print(palchecker('radar'))
    

    相关文章

      网友评论

          本文标题:双端队列回文词判定

          本文链接:https://www.haomeiwen.com/subject/qwbfqhtx.html