update
swadhinbiswas committed 2 years ago
1f22b99
1 parent 8dbd201
commit 1f22b99
4 files changed
+173 -0
Showing 4 changed files+173-0
▼Add Two Numbers.py
+136-0
| @@ -0,0 +1,136 @@ | ||
1 | +# # class NodeList: | |
2 | +# # def __init__(self, data=0, next=None): | |
3 | +# # self.data = data | |
4 | +# # self.next = next | |
5 | + | |
6 | +# # class Solution: | |
7 | +# # def addTwoNumbers(self,l1,l2): | |
8 | +# # dummy = NodeList(0) | |
9 | +# # current = dummy | |
10 | +# # carry = 0 | |
11 | +# # while l1 or l2: | |
12 | +# # x = l1.data if l1 else 0 | |
13 | +# # y = l2.data if l2 else 0 | |
14 | +# # sum = carry + x + y | |
15 | +# # carry = sum // 10 | |
16 | +# # current.next = NodeList(sum % 10) | |
17 | +# # current = current.next | |
18 | +# # if l1: | |
19 | +# # l1 = l1.next | |
20 | +# # if l2: | |
21 | +# # l2 = l2.next | |
22 | +# # if carry > 0: | |
23 | +# # current.next = NodeList(1) | |
24 | +# # return dummy.next | |
25 | + | |
26 | + | |
27 | +# # until both linked lists are exhausted, and if there is a remaining carry, a new node is added to the result. | |
28 | + | |
29 | + | |
30 | +# # solve=Solution() | |
31 | + | |
32 | +# # l1 = NodeList(2) | |
33 | +# # l1.next = NodeList(4) | |
34 | +# # l1.next.next = NodeList(3) | |
35 | + | |
36 | +# # l2 = NodeList(5) | |
37 | +# # l2.next = NodeList(6) | |
38 | +# # l2.next.next = NodeList(4) | |
39 | + | |
40 | +# # result = solve.addTwoNumbers(l1, l2) | |
41 | + | |
42 | +# # while result: | |
43 | +# # print(result.data, end=" ") | |
44 | +# # result = result.next | |
45 | + | |
46 | + | |
47 | + | |
48 | + | |
49 | +# #best case | |
50 | + | |
51 | +# from typing import Optional | |
52 | + | |
53 | +# class NodeList: | |
54 | +# def __init__(self, data=0, next=None): | |
55 | +# self.data = data | |
56 | +# self.next = next | |
57 | + | |
58 | +# class Solution: | |
59 | +# def addTwoNumbers(self,l1:Optional[NodeList],l2:Optional[NodeList])->Optional[NodeList]: | |
60 | +# outnode = NodeList(0) | |
61 | + | |
62 | +# current = outnode | |
63 | +# carry = 0 | |
64 | +# while l1 or l2: | |
65 | +# x=l1.data | |
66 | +# y=l2.data | |
67 | +# sum = carry + x + y | |
68 | +# carry | |
69 | +# solve=Solution() | |
70 | + | |
71 | +# l1 = NodeList(2) | |
72 | +# l1.next = NodeList(4) | |
73 | +# l1.next.next = NodeList(3) | |
74 | + | |
75 | +# l2 = NodeList(5) | |
76 | +# l2.next = NodeList(6) | |
77 | +# l2.next.next = NodeList(4) | |
78 | + | |
79 | +# result = solve.addTwoNumbers(l1, l2) | |
80 | + | |
81 | +# while result: | |
82 | +# print(result.data, end=" ") | |
83 | +# result = result.next | |
84 | + | |
85 | + | |
86 | +#solve using list | |
87 | + | |
88 | +# class Solution: | |
89 | +# def addTwoNumbers(self, l1,l2): | |
90 | + | |
91 | + | |
92 | +# lsi=[2,4,3] | |
93 | +# lsi2=[5,6,4] | |
94 | +# out=[] | |
95 | +# carry=0 | |
96 | + | |
97 | +# for i in range(len(lsi)): | |
98 | +# x=lsi[i] | |
99 | +# y=lsi2[i] | |
100 | +# sum=carry+x+y | |
101 | +# carry=sum//10 | |
102 | +# out.append(sum%10) | |
103 | +# print(out) | |
104 | +from typing import Optional | |
105 | + | |
106 | +class NodeList: | |
107 | + def __init__(self, val=0, next=None): | |
108 | + self.val = val | |
109 | + self.next = next | |
110 | + | |
111 | + | |
112 | +class Solution: | |
113 | + def addTwoNumbers(self, l1:Optional[NodeList],l2:Optional[NodeList])->Optional[NodeList]: | |
114 | + outnode = NodeList(0) | |
115 | + tail=outnode | |
116 | + carry=0 | |
117 | + while l1 or l2: | |
118 | + x=l1.val if l1 else 0 | |
119 | + y=l2.val if l2 else 0 | |
120 | + sum=carry+x+y | |
121 | + carry=sum//10 | |
122 | + tail.next=NodeList(sum%10) | |
123 | + tail=tail.next | |
124 | + if l1: | |
125 | + l1=l1.next | |
126 | + if l2: | |
127 | + l2=l2.next | |
128 | + if carry>0: | |
129 | + tail.next=NodeList(1) | |
130 | + return outnode.next | |
131 | + | |
132 | + | |
133 | +solve=Solution() | |
134 | +lsi=[0] | |
135 | +lsi2=[0] | |
136 | +print(solve.addTwoNumbers(lsi,lsi2)) | |
0 | 137 | |
▼findposition.py
+7-0
| @@ -0,0 +1,7 @@ | ||
1 | +class Solution: | |
2 | + def searchInsert(self, nums, target: int) -> int: | |
3 | + for i in range(0,len(nums)): | |
4 | + if nums[i]==target: | |
5 | + break | |
6 | + return i | |
7 | + | |
0 | 8 | |
▼longeststring.py
+11-0
| @@ -0,0 +1,11 @@ | ||
1 | +class Solution: | |
2 | + def lengthOfLongestSubstring(self, s: str) -> int: | |
3 | + l = answer = 0 | |
4 | + chars = [-1]*128 | |
5 | + for r, ch in enumerate(s): | |
6 | + if chars[ord(ch)] >= l: | |
7 | + l = chars[ord(ch)]+1 | |
8 | + else: | |
9 | + answer = max(answer, r-l+1) | |
10 | + chars[ord(ch)] = r | |
11 | + return answer | |
0 | 12 | |
▼longestsubstring.py
+19-0
| @@ -0,0 +1,19 @@ | ||
1 | +class Solution: | |
2 | + def lengthOfLongestSubstring(self, s: str) -> int: | |
3 | + l = answer = 0 | |
4 | + chars = [-1]*128 | |
5 | + for r, ch in enumerate(s): | |
6 | + if chars[ord(ch)] >= l: | |
7 | + l = chars[ord(ch)]+1 | |
8 | + else: | |
9 | + answer = max(answer, r-l+1) | |
10 | + chars[ord(ch)] = r | |
11 | + return answer | |
12 | + | |
13 | + | |
14 | +solve=Solution() | |
15 | +print(solve.lengthOfLongestSubstring("abcabcbb")) | |
16 | +print(solve.lengthOfLongestSubstring("bbbbb")) | |
17 | +print(solve.lengthOfLongestSubstring("pwwkew")) | |
18 | +print(solve.lengthOfLongestSubstring("")) | |
19 | +print(solve.lengthOfLongestSubstring(" ")) | |
0 | 20 | |