Skip to content

Commit 1827600

Browse files
committed
leetcode 1-3 26
1 parent 8c74545 commit 1827600

File tree

4 files changed

+115
-0
lines changed

4 files changed

+115
-0
lines changed

new_issue/lengthOfLongestSubstring.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
def lengthOfLongestSubstring(s):
3+
ret_length = 0
4+
length = len(s)
5+
dupstring = set()
6+
rk = -1
7+
for i in range(length):
8+
if i > 0:
9+
dupstring.remove(s[i-1])
10+
while rk+1 < length and s[rk+1] not in dupstring:
11+
dupstring.add(s[rk+1])
12+
rk += 1
13+
ret_length = max(ret_length,rk-i+1)
14+
return ret_length
15+
16+
if __name__ == "__main__":
17+
test_string = "pwwakew"
18+
print lengthOfLongestSubstring(test_string)
19+
20+

new_issue/removeDuplicates.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class Solution(object):
2+
def removeDuplicates(self, nums):
3+
"""
4+
:type nums: List[int]
5+
:rtype: int
6+
"""
7+
if len(nums) == 0:
8+
return 0
9+
10+
slow = 1
11+
for index in range(1,len(nums)):
12+
if nums[index] != nums[index-1]:
13+
nums[slow] = nums[index]
14+
slow += 1
15+
return slow
16+
17+
if __name__ == "__main__":
18+
test_list = [0,0,1,1,1,2,2,3,3,4,4]
19+
sol = Solution()
20+
new_length = sol.removeDuplicates(test_list)
21+
print new_length,test_list[:new_length]

new_issue/two_sum.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
def twoSum(nums, target):
2+
"""
3+
:type nums: List[int]
4+
:type target: int
5+
:rtype: List[int]
6+
"""
7+
8+
new_dict = {}
9+
for i,item in enumerate(nums):
10+
if target - item in new_dict:
11+
return [i,new_dict[target - item]]
12+
new_dict[nums[i]] = i
13+
14+
15+
if __name__ == "__main__":
16+
nums = [2,7,11,15]
17+
target = 9
18+
print twoSum(nums,target)

new_issue/two_sum_listnode.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
class ListNode(object):
2+
def __init__(self, val=0, next=None):
3+
self.val = val
4+
self.next = next
5+
6+
def addTwoNumbers(l1, l2):
7+
"""
8+
:type l1: ListNode
9+
:type l2: ListNode
10+
:rtype: ListNode
11+
"""
12+
if l1.val == 0 and l1.next is None:
13+
return l2
14+
if l2.val == 0 and l2.next is None:
15+
return l1
16+
17+
ret = ListNode((l1.val+l2.val)%10)
18+
last = ret
19+
advance = l1.val+l2.val >= 10
20+
l1 = l1.next
21+
l2 = l2.next
22+
while l1 is not None or l2 is not None:
23+
num1 = l1.val if l1 is not None else 0
24+
num2 = l2.val if l2 is not None else 0
25+
sum = num1 + num2
26+
if advance:
27+
sum += 1
28+
advance = sum >= 10
29+
new_node = ListNode(sum%10)
30+
last.next = new_node
31+
last = new_node
32+
l1 = l1.next if l1 is not None else None
33+
l2 = l2.next if l2 is not None else None
34+
if advance:
35+
last.next = ListNode(1)
36+
return ret
37+
38+
if __name__ == "__main__":
39+
l1 = [0]
40+
l2 = [5, 6, 4]
41+
test1 = ListNode(l1[0])
42+
last1 = test1
43+
test2 = ListNode(l2[0])
44+
last2 = test2
45+
for item in l1[1:]:
46+
new_node = ListNode(item)
47+
last1.next = new_node
48+
last1 = new_node
49+
for item in l2[1:]:
50+
new_node = ListNode(item)
51+
last2.next = new_node
52+
last2 = new_node
53+
ret = addTwoNumbers(test1,test2)
54+
while ret is not None:
55+
print ret.val
56+
ret = ret.next

0 commit comments

Comments
 (0)