zoukankan      html  css  js  c++  java
  • [leetcode] Valid Palindrome @ Python

    原题地址:https://oj.leetcode.com/problems/valid-palindrome/

    题意:

    Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

    For example,
    "A man, a plan, a canal: Panama" is a palindrome

    "radar" is a palindrome

    "rotator" is a palindrome
    "race a car" is not a palindrome.

    Note:
    Have you consider that the string might be empty? This is a good question to ask during an interview.

    For the purpose of this problem, we define empty string as valid palindrome.

    解题思路1:利用python的list comprehension 以及string 的 isalnum()函数我们可以写出极为简短的解决方法 (原创):

    class Solution:
        # @param s, a string
        # @return a boolean
        def isPalindrome(self, s):
            newS= [i.lower() for i in s if i.isalnum()]
            #return newS == newS[::-1]
            return newS[:len(newS)/2] == newS[(len(newS)+1)/2:][::-1] 

    需要说明的是程序的最后一行对于newS长度为奇或者为偶都通用

    newS[:len(newS)/2] == newS[(len(newS)+1)/2:][::-1]

    解题思路2:将不是字母的字符去掉,然后转换成小写,然后简单的回文判断。

    class Solution:
        # @param s, a string
        # @return a boolean
        def isPalindrome(self, s):
            if s == '':
                return True
            else:
                sTmp = ''
                for i in range(0, len(s)):
                    if s[i] >= 'a' and s[i] <= 'z' or s[i] >= '0' and s[i] <= '9' or s[i] >= 'A' and s[i] <= 'Z':
                        sTmp += s[i]
                sTmp = sTmp.lower()
                for i in range(0, len(sTmp)/2):
                    if sTmp[i] != sTmp[len(sTmp)-1-i]:
                        return False
                return True

     参考致谢:

    [1]http://www.cnblogs.com/zuoyuan/p/3765882.html

  • 相关阅读:
    CSS_行内元素和块级元素
    jdbc连接oracle11g的问题——查不出来数据,权限问题
    新的起点
    MVC过滤器详解
    SQL Server游标的使用
    处理百万级以上的数据提高查询速度的方法
    两个有序数组找出相同数据
    C# 可变参数
    C#反射
    产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
  • 原文地址:https://www.cnblogs.com/asrman/p/3974114.html
Copyright © 2011-2022 走看看