Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 01beeb2

Browse files
add 167.py 492.py 504.py 541.py 543.py 551.py 563.py 572.py 599.py
1 parent 0ca3228 commit 01beeb2

9 files changed

+223
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution(object):
2+
def twoSum(self, numbers, target):
3+
"""
4+
:type numbers: List[int]
5+
:type target: int
6+
:rtype: List[int]
7+
"""
8+
i, j = 0, len(numbers) - 1
9+
while numbers[i] + numbers[j] != target:
10+
if numbers[i] + numbers[j] > target:
11+
j -= 1
12+
else:
13+
i += 1
14+
return [i+1, j+1]
15+
16+
17+
def main():
18+
s = Solution()
19+
print s.twoSum([2,3,4], 6)
20+
print s.twoSum([-1, 0], -1)
21+
22+
if __name__ == '__main__':
23+
main()
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import math
2+
3+
4+
class Solution(object):
5+
def constructRectangle(self, area):
6+
"""
7+
:type area: int
8+
:rtype: List[int]
9+
"""
10+
11+
L = int(math.sqrt(area))
12+
13+
if L * L == area:
14+
return [L, L]
15+
else:
16+
L += 1
17+
while divmod(area, L)[1]:
18+
L += 1
19+
return [L, area/L]
20+
21+
def constructRectangle(self, area):
22+
mid = int(math.sqrt(area))
23+
while mid > 0:
24+
if area % mid == 0:
25+
return [int(area / mid), int(mid)]
26+
mid -= 1
27+
28+
29+
def main():
30+
s = Solution()
31+
print s.constructRectangle(9999991)
32+
33+
if __name__ == '__main__':
34+
main()

‎py_solution/504. Base 7.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution(object):
2+
def convertToBase7(self, num):
3+
if num < 0:
4+
return '-' + self.convertToBase7(-num)
5+
if num < 7:
6+
return str(num)
7+
return self.convertToBase7(num // 7) + str(num % 7)
8+
9+
10+
def main():
11+
s = Solution()
12+
print s.convertToBase7(100)
13+
print s.convertToBase7(-7)
14+
15+
if __name__ == '__main__':
16+
main()

‎py_solution/541. Reverse String II.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class Solution(object):
2+
def reverseStr(self, s, k):
3+
"""
4+
:type s: str
5+
:type k: int
6+
:rtype: str
7+
"""
8+
return s[0:k:-1] + s[k:]
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode(object):
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.left = None
6+
# self.right = None
7+
8+
class Solution(object):
9+
def diameterOfBinaryTree(self, root):
10+
"""
11+
:type root: TreeNode
12+
:rtype: int
13+
"""
14+
self.diameter = 0
15+
16+
def _max_depth(node):
17+
left_depth = 0
18+
right_depth = 0
19+
20+
if node.left:
21+
left_depth += _max_depth(node.left) + 1
22+
if node.right:
23+
right_depth += _max_depth(node.right) + 1
24+
25+
if left_depth + right_depth > self.diameter:
26+
self.diameter = left_depth + right_depth
27+
return max(left_depth, right_depth)
28+
29+
if root:
30+
_max_depth(root)
31+
return self.diameter
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class Solution(object):
2+
def checkRecord(self, s):
3+
"""
4+
:type s: str
5+
:rtype: bool
6+
"""
7+
return not (s.count("A") > 1 or s.count("LLL") >= 1)
8+

‎py_solution/563. Binary Tree Tilt.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode(object):
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.left = None
6+
# self.right = None
7+
8+
class Solution(object):
9+
def findTilt(self, root):
10+
self.tilt = 0
11+
def _tilt(node):
12+
if not node:
13+
return 0
14+
left, right = _tilt(node.left), _tilt(node.right)
15+
self.tilt += abs(left - right)
16+
return node.val + left + right
17+
_tilt(root)
18+
return self.tilt
19+
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Definition for a binary tree node.
2+
class TreeNode(object):
3+
def __init__(self, x):
4+
self.val = x
5+
self.left = None
6+
self.right = None
7+
8+
9+
def build_bintree(s, i):
10+
if s:
11+
node = TreeNode(s[i])
12+
if 2*i+1 < len(s) and s[2*i+1]:
13+
node.left = build_bintree(s, 2*i+1)
14+
if 2*i+2 < len(s) and s[2*i+2]:
15+
node.right = build_bintree(s, 2*i+2)
16+
return node
17+
18+
class Solution(object):
19+
def isSubtree(self, s, t):
20+
"""
21+
:type s: TreeNode
22+
:type t: TreeNode
23+
:rtype: bool
24+
"""
25+
self.same_val_node = []
26+
def _find_val(root, x):
27+
if root:
28+
if root.val == x:
29+
self.same_val_node.append(root)
30+
_find_val(root.left, x)
31+
_find_val(root.right, x)
32+
33+
def _same_tree(s, t):
34+
if not s and not t:
35+
return True
36+
if s and t:
37+
if s.val == t.val:
38+
return _same_tree(s.left, t.left) and _same_tree(s.right, t.right)
39+
return False
40+
41+
if not s and not t:
42+
return True
43+
if s and t:
44+
_find_val(s, t.val)
45+
if self.same_val_node:
46+
return any(_same_tree(node, t) for node in self.same_val_node)
47+
return False
48+
49+
50+
def main():
51+
s = Solution()
52+
src = build_bintree([3,4,5,1,2], 0)
53+
target = build_bintree([4,1,2], 0)
54+
print s.isSubtree(src, target)
55+
print s.isSubtree(build_bintree([1,1], 0), build_bintree([1], 0))
56+
57+
58+
if __name__ == '__main__':
59+
main()
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class Solution(object):
2+
def findRestaurant(self, list1, list2):
3+
"""
4+
:type list1: List[str]
5+
:type list2: List[str]
6+
:rtype: List[str]
7+
"""
8+
common = list(set(list1) & set(list2))
9+
dic = {r: list1.index(r) + list2.index(r) for r in common}
10+
min_sum = min(dic.values())
11+
12+
ret = []
13+
for name in dic.keys():
14+
if dic[name] == min_sum:
15+
ret.append(name)
16+
return ret
17+
18+
19+
def main():
20+
s = Solution()
21+
s.findRestaurant(["Shogun","Tapioca Express","Burger King","KFC"],
22+
["Piatti","The Grill at Torrey Pines","Hungry Hunter Steakhouse","Shogun"])
23+
24+
if __name__ == '__main__':
25+
main()

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /