Skip to content

Commit 720ae7e

Browse files
committed
2023-06-04
1 parent 2ec722e commit 720ae7e

File tree

731 files changed

+12838
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

731 files changed

+12838
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Definition for singly-linked list.
2+
# class ListNode(object):
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.next = None
6+
7+
class Solution(object):
8+
def addTwoNumbers(self, l1, l2):
9+
"""
10+
:type l1: ListNode
11+
:type l2: ListNode
12+
:rtype: ListNode
13+
"""
14+
if self.getLength(l1) < self.getLength(l2):
15+
l1, l2 = l2, l1
16+
head = l1
17+
while(l2):
18+
l1.val += l2.val
19+
l1 = l1.next
20+
l2 = l2.next
21+
22+
p = head
23+
while(p):
24+
if p.val > 9:
25+
p.val -= 10
26+
if p.next:
27+
p.next.val += 1
28+
else:
29+
p.next = ListNode(1)
30+
p = p.next
31+
return head
32+
33+
34+
def getLength(self, l):
35+
tmp = 0
36+
while(l):
37+
tmp += 1
38+
l = l.next
39+
return tmp

0009.回文数/0009-回文数 2.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution(object):
2+
def isPalindrome(self, x):
3+
"""
4+
:type x: int
5+
:rtype: bool
6+
"""
7+
#2019.6.1
8+
xx = x
9+
if x < 0:
10+
return False
11+
12+
reverse = 0
13+
while x > 0:
14+
x, tmp = divmod(x, 10)
15+
reverse = reverse * 10 + tmp
16+
17+
return reverse == xx
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Definition for singly-linked list.
2+
# class ListNode:
3+
# def __init__(self, val=0, next=None):
4+
# self.val = val
5+
# self.next = next
6+
class Solution:
7+
def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
8+
l = 0
9+
p = head
10+
while p:
11+
l += 1
12+
p = p.next
13+
14+
count = l - n + 1
15+
16+
dummy = ListNode(-1)
17+
dummy.next = head
18+
cur = -1
19+
p = dummy
20+
while p:
21+
cur += 1
22+
if cur == count - 1:
23+
node_to_be_deleted = p.next
24+
p.next = node_to_be_deleted.next
25+
break
26+
p = p.next
27+
28+
return dummy.next
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution(object):
2+
def isValid(self, s):
3+
"""
4+
:type s: str
5+
:rtype: bool
6+
"""
7+
dic = {")": "(", "]":"[", "}":"{"}
8+
stack = []
9+
for ch in s:
10+
if ch in ["(", "[", "{"]:
11+
stack.append(ch)
12+
else:
13+
if not stack or dic[ch] != stack[-1]:
14+
return False
15+
stack.pop()
16+
return len(stack) == 0
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Definition for singly-linked list.
2+
# class ListNode(object):
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.next = None
6+
7+
class Solution(object):
8+
def mergeTwoLists(self, l1, l2):
9+
"""
10+
:type l1: ListNode
11+
:type l2: ListNode
12+
:rtype: ListNode
13+
"""
14+
dummy = ListNode(-1)
15+
16+
p = dummy
17+
18+
while l1 and l2:
19+
if l1.val <= l2.val:
20+
p.next = ListNode(l1.val)
21+
l1 = l1.next
22+
else:
23+
p.next = ListNode(l2.val)
24+
l2 = l2.next
25+
p = p.next
26+
27+
if l1:
28+
p.next = l1
29+
30+
if l2:
31+
p.next = l2
32+
33+
return dummy.next
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution(object):
2+
def generateParenthesis(self, n):
3+
"""
4+
:type n: int
5+
:rtype: List[str]
6+
"""
7+
8+
res = []
9+
10+
def dfs(tmp, left, right):
11+
if len(tmp) == 2 * n:
12+
res.append(tmp)
13+
14+
if left:
15+
dfs(tmp + "(", left - 1, right)
16+
if right > left:
17+
dfs(tmp + ")", left, right - 1)
18+
19+
20+
dfs("", n, n)
21+
return res
22+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Definition for singly-linked list.
2+
# class ListNode(object):
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.next = None
6+
7+
class Solution(object):
8+
def swapPairs(self, head):
9+
"""
10+
:type head: ListNode
11+
:rtype: ListNode
12+
"""
13+
if not head or not head.next:
14+
return head
15+
dummy = ListNode(1)
16+
dummy.next = head
17+
18+
first = head
19+
second = head.next
20+
21+
tail = second.next
22+
first.next = self.swapPairs(tail)
23+
second.next = first
24+
dummy.next = second
25+
26+
return dummy.next
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution:
2+
def removeDuplicates(self, nums: List[int]) -> int:
3+
visited = set()
4+
index = 0
5+
for num in nums:
6+
if num not in visited:
7+
visited.add(num)
8+
nums[index] = num
9+
index += 1
10+
return index
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class Solution(object):
2+
def removeElement(self, nums, val):
3+
"""
4+
:type nums: List[int]
5+
:type val: int
6+
:rtype: int
7+
"""
8+
nums.sort()
9+
for i, num in enumerate(nums):
10+
if num == val:
11+
j = i + 1
12+
while(j < len(nums) and nums[j] == num):
13+
j += 1
14+
t = j
15+
while(j < len(nums)):
16+
nums[i] = nums[j]
17+
i += 1
18+
j += 1
19+
return i
20+
21+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class Solution:
2+
def strStr(self, haystack: str, needle: str) -> int:
3+
if needle not in haystack:
4+
return -1
5+
return haystack.index(needle)

0 commit comments

Comments
 (0)