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 1827600

Browse files
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)

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