- 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]
- 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
网友评论