Day3

作者: wendy_要努力努力再努力 | 来源:发表于2017-11-01 23:47 被阅读0次
  1. Longest Common Prefix
    寻找字符串数组的最长公共前缀
    ** 思路:拿出第一个字符串,后面的字符串如果比我短,那肯定公共前缀要比这个最短的字符串等于或者小于。(我自己是想着找到最短的,然后拿最短的每一位去和所有的比较;复杂度高)
    人家是拿第一个字符串的每一位和所有字符串比较,省去了我的第一步。
    边界:如果数组是空的,返回空;如果字符串中有空格字符串,返回空;
class Solution(object):
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        if strs == []:
            return ""
        for i in range(len(strs[0])):
            for str in strs:
                if len(str) <= i or str[i] != strs[0][i]:
                    return strs[0][:i]
        return strs[0]

  1. Valid Parentheses
    Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
    The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.
    **思路:对于这种匹配问题,可以用堆栈的数据结构,有匹配的就弹出,没有匹配的就存入,直到栈里空着,说明都匹配。
class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        pars = [None]
        parmap = {')': '(', '}': '{', ']': '['}
        for c in s:
            if c in parmap and parmap[c] == pars[len(pars)-1]:
                pars.pop()
            else:
                pars.append(c)
        return len(pars) == 1

??调用pop,append函数,这些是内置函数,不像os.walk()这种需要指定的函数库。‘.’前面的对象名可以随意命名。
数组里是None 代表长度为1

网友评论

      本文标题:Day3

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