Skip to content

Commit 93fe97f

Browse files
committed
update
1 parent 21c7ded commit 93fe97f

File tree

2 files changed

+31
-18
lines changed

2 files changed

+31
-18
lines changed

015 Longest Common Prefix.py

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,24 @@
22
Write a function to find the longest common prefix string amongst an array of strings.
33
"""
44
__author__ = 'Danyang'
5-
class Solution:
5+
6+
7+
class Solution(object):
68
def longestCommonPrefix(self, strs):
9+
if not strs: return ""
10+
l = min(map(len, strs))
11+
i = 0
12+
while i < l:
13+
char = strs[0][i]
14+
for s in strs:
15+
if s[i] != char:
16+
return strs[0][:i]
17+
18+
i += 1
19+
20+
return strs[0][:i]
21+
22+
def longestCommonPrefixComplex(self, strs):
723
"""
824
O(k*n)
925
:param strs: a list of string
@@ -21,22 +37,21 @@ def longestCommonPrefix(self, strs):
2137
char = strs[0][i]
2238

2339
j = 0
24-
while j<n:
40+
while j < n:
2541
try:
26-
if strs[j][i]!=char: break
42+
if strs[j][i] != char: break
2743
j += 1
2844
except IndexError:
2945
break
3046

31-
if j==n:
47+
if j == n:
3248
str_builder += char
3349
else:
3450
break
3551

3652
return str_builder
3753

3854

39-
40-
if __name__=="__main__":
55+
if __name__ == "__main__":
4156
strs = ["abc", "abcd"]
4257
print Solution().longestCommonPrefix(strs)

101 Symmetric Tree.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,37 +20,35 @@
2020
confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.
2121
"""
2222
__author__ = 'Danyang'
23+
24+
2325
# Definition for a binary tree node
24-
class TreeNode:
26+
class TreeNode(object):
2527
def __init__(self, x):
2628
self.val = x
2729
self.left = None
2830
self.right = None
2931

30-
class Solution:
32+
33+
class Solution(object):
3134
def isSymmetric(self, root):
3235
"""
3336
dfs
3437
:param root: TreeNode
3538
:return: boolean
3639
"""
37-
# Trivial
3840
if not root:
3941
return True
4042

4143
return self.isSymmetrical(root.left, root.right)
4244

43-
44-
def isSymmetrical(self, mirror_left, mirror_right):
45-
# Trivial
46-
if not mirror_left and not mirror_right:
45+
def isSymmetrical(self, l, r):
46+
if not l and not r:
4747
return True
4848

4949
# recursive
50-
try:
51-
if mirror_left.val==mirror_right.val and self.isSymmetrical(mirror_left.left, mirror_right.right) and self.isSymmetrical(mirror_left.right, mirror_right.left):
52-
return True
53-
except AttributeError:
54-
return False
50+
if (l and r and
51+
l.val == r.val and self.isSymmetrical(l.left, r.right) and self.isSymmetrical(l.right, r.left)):
52+
return True
5553

5654
return False

0 commit comments

Comments
 (0)