Skip to content

Commit b1ec7b0

Browse files
committed
three leetcode problems
1 parent c41d802 commit b1ec7b0

File tree

3 files changed

+62
-0
lines changed

3 files changed

+62
-0
lines changed

largestNumber.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# @param num, a list of integers
2+
# @return a string
3+
def largestNumber(num):
4+
def strSort(x, y):
5+
x = str(x)
6+
y = str(y)
7+
return 1 if (x + y) > (y + x) else -1
8+
9+
l = sorted(num, cmp=strSort, reverse=True)
10+
print l
11+
if l[0] == 0:
12+
return '0';
13+
ret = ''
14+
for i in l:
15+
ret += str(i)
16+
return ret
17+
18+
assert largestNumber([0, 0]) == '0'
19+
assert largestNumber([3, 30, 34, 5, 9]) == '9534330'
20+
assert largestNumber([824,938,1399,5607,6973,5703,9609,4398,8247]) == '9609938824824769735703560743981399'
21+
assert largestNumber([9051,5526,2264,5041,1630,5906,6787,8382,4662,4532,6804,4710,4542,2116,7219,8701,8308,957,8775,4822,396,8995,8597,2304,8902,830,8591,5828,9642,7100,3976,5565,5490,1613,5731,8052,8985,2623,6325,3723,5224,8274,4787,6310,3393,78,3288,7584,7440,5752,351,4555,7265,9959,3866,9854,2709,5817,7272,43,1014,7527,3946,4289,1272,5213,710,1603,2436,8823,5228,2581,771,3700,2109,5638,3402,3910,871,5441,6861,9556,1089,4088,2788,9632,6822,6145,5137,236,683,2869,9525,8161,8374,2439,6028,7813,6406,7519]) == '995998549642963295795569525905189958985890288238775871870185978591838283748308830827481618052787813771758475277519744072727265721971071006861683682268046787640663256310614560285906582858175752573156385565552654905441522852245213513750414822478747104662455545424532434289408839763963946391038663723370035134023393328828692788270926232581243924362362304226421162109163016131603127210891014'

subsets.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# @param S, a list of integer
2+
# @return a list of lists of integer
3+
def subsets(S):
4+
ret = []
5+
length = len(S)
6+
# sort
7+
S.sort()
8+
9+
# traverse
10+
def traverse(s, level):
11+
if level == length:
12+
ret.append(s)
13+
return
14+
traverse(s, level + 1)
15+
traverse(s + [S[level]], level + 1)
16+
17+
traverse([], 0)
18+
return ret;
19+
20+
assert subsets([1, 2, 3]) == [[], [3], [2], [2, 3], [1], [1, 3], [1, 2], [1, 2, 3]]

subsetsWithDup.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# @param S, a list of integer
2+
# @return a list of lists of integer
3+
def subsets(S):
4+
ret = []
5+
length = len(S)
6+
# sort
7+
S.sort()
8+
9+
# traverse
10+
def traverse(s, level, flag):
11+
if level == length:
12+
ret.append(s)
13+
return
14+
traverse(s + [S[level]], level + 1, True)
15+
if level == 0 or S[level] != S[level - 1] or not flag:
16+
traverse(s, level + 1, False)
17+
18+
traverse([], 0, False)
19+
return ret;
20+
21+
assert subsets([1, 2, 2]) == [[1, 2, 2], [1, 2], [1], [2, 2], [2], []]

0 commit comments

Comments
 (0)