-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfindDiffString.py
More file actions
69 lines (56 loc) · 1.57 KB
/
Copy pathfindDiffString.py
File metadata and controls
69 lines (56 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
'''
Given two strings s and t which consist of only lowercase letters.
String t is generated by random shuffling string s and then add one more letter at a random position.
Find the letter that was added in t.
Example:
Input:
s = "abcd"
t = "abcde"
Output:
e
Explanation:
'e' is the letter that was added.
'''
class Solution(object):
def findTheDifferenceBT(self, s, t):
"""
:type s: str
:type t: str
:rtype: str
O(st) where s, t is len of s, t
"""
# convert string to list
sList = [char for char in s] # O(s) with s is length of s
for char in t: # O(t)
if char not in sList: # O(s)
return char
sList.pop(sList.index(char)) # remove the item from sList, sList length will reduce 1 by each t iteration
def findTheDifference(self, s, t):
"""
:type s: str
:type t: str
:rtype: str
O(st) where s, t is len of s, t
"""
for char in t:
if char not in s or t.count(char) > s.count(char):
return char
def findTheDifferenceXOR(self, s, t):
"""
:type s: str
:type t: str
:rtype: str
"""
ch = 0
for char in s:
ch ^= ord(char)
print(char, format(ord(char), 'b'))
print(char, ord(char), ch)
for char in t:
ch ^= ord(char)
print(char,ord(char), ch)
return chr(ch)
s = "abcd"
t = "abcde"
sol = Solution()
print(sol.findTheDifferenceXOR(s,t))