Skip to content

Commit daa5557

Browse files
committed
2019-08-06
1 parent 08fd7f4 commit daa5557

File tree

5 files changed

+105
-45
lines changed

5 files changed

+105
-45
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
class MyStack(object):
2+
3+
def __init__(self):
4+
"""
5+
Initialize your data structure here.
6+
"""
7+
self.queue1 = []
8+
self.queue2 = []
9+
10+
def push(self, x):
11+
"""
12+
Push element x onto stack.
13+
:type x: int
14+
:rtype: None
15+
"""
16+
self.queue1.append(x)
17+
18+
while len(self.queue1) > 1:
19+
self.queue2.append(self.queue1[0])
20+
self.queue1 = self.queue1[1:]
21+
22+
23+
# print self.queue1, self.queue2
24+
def pop(self):
25+
"""
26+
Removes the element on top of the stack and returns that element.
27+
:rtype: int
28+
"""
29+
# print self.queue1, self.queue2
30+
top = self.queue1[0]
31+
self.queue1, self.queue2 = self.queue2, []
32+
while len(self.queue1) > 1:
33+
self.queue2.append(self.queue1[0])
34+
self.queue1 = self.queue1[1:]
35+
return top
36+
37+
38+
def top(self):
39+
"""
40+
Get the top element.
41+
:rtype: int
42+
"""
43+
return self.queue1[0]
44+
45+
def empty(self):
46+
"""
47+
Returns whether the stack is empty.
48+
:rtype: bool
49+
"""
50+
return not self.queue1 and not self.queue2
51+
52+
53+
# Your MyStack object will be instantiated and called as such:
54+
# obj = MyStack()
55+
# obj.push(x)
56+
# param_2 = obj.pop()
57+
# param_3 = obj.top()
58+
# param_4 = obj.empty()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import operator
2+
class Solution(object):
3+
def calculate(self, s):
4+
"""
5+
:type s: str
6+
:rtype: int
7+
"""
8+
res = []
9+
calculate = {
10+
"+": lambda x: res.append(x),
11+
"-": lambda x: res.append(-x),
12+
"*": lambda x: res.append(x * res.pop()),
13+
"/": lambda x: res.append(int(operator.truediv(res.pop(), x)))
14+
}
15+
op = "+"
16+
num = 0
17+
for char in s + "+":
18+
if char.isdigit():
19+
num = num * 10 + int(char)
20+
elif char != " ":
21+
calculate[op](num)
22+
op, num = char, 0
23+
# print res
24+
return sum(res)

0228.汇总区间/0228-汇总区间.py

+15-29
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,19 @@ def summaryRanges(self, nums):
77
if not nums:
88
return nums
99
start, end = nums[0], nums[0]
10-
11-
res = list()
12-
for i, x in enumerate(nums):
13-
if i == 0:
14-
continue
15-
16-
if x == end + 1:#代表连续
17-
end = x
18-
elif x != end + 1: #中断了 或者是最后一个数了
19-
# print i, x, start, end
20-
temp = ""
21-
if start == end: #只有一个数
22-
temp += str(end)
10+
res = []
11+
for i, num in enumerate(nums):
12+
if i != 0:
13+
if num == end + 1:
14+
end += 1
2315
else:
24-
temp += str(start) + "->" + str(end)
25-
res.append(temp)
26-
27-
start, end = x, x
28-
29-
if i == len(nums) - 1:
30-
temp = ""
31-
if start == end: #只有一个数
32-
temp += str(end)
33-
else:
34-
temp += str(start) + "->" + str(end)
35-
res.append(temp)
36-
37-
# print start, end
38-
return res if len(nums) > 1 else [str(nums[0])]
39-
16+
if end - start == 0:
17+
res.append(str(end))
18+
else:
19+
res.append(str(start) + "->" + str(end))
20+
start, end = num, num
21+
if end - start == 0:
22+
res.append(str(end))
23+
else:
24+
res.append(str(start) + "->" + str(end))
25+
return res

0230.二叉搜索树中第K小的元素/0230-二叉搜索树中第K小的元素.py

+7-11
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,11 @@ def kthSmallest(self, root, k):
1212
:type k: int
1313
:rtype: int
1414
"""
15-
inorder = list()
16-
self.inorderTra(root, inorder)
17-
print inorder
1815

19-
return inorder[k-1]
20-
21-
def inorderTra(self, node, path):
22-
if not node:
23-
return
24-
self.inorderTra(node.left, path)
25-
path.append(node.val)
26-
self.inorderTra(node.right, path)
16+
def inorderTraversal(node):
17+
if not node:
18+
return []
19+
return inorderTraversal(node.left) + [node.val] + inorderTraversal(node.right)
20+
21+
l = inorderTraversal(root)
22+
return l[k - 1]

0231.2的幂/0231-2的幂.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,4 @@ def isPowerOfTwo(self, n):
44
:type n: int
55
:rtype: bool
66
"""
7-
i = 1
8-
while(i<n):
9-
i*=2
10-
return i == n
11-
7+
return n > 0 and not (n & (n - 1))

0 commit comments

Comments
 (0)