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 17d7202

Browse files
Good but not perfect.
1 parent a454d17 commit 17d7202

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed

‎LeetCode Algorithms/buddy-strings.py‎

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
""" https://leetcode.com/problems/buddy-strings/ """
2+
3+
# 34 / 39 testcases passed
4+
5+
class Solution:
6+
def buddyStrings(self, s, goal):
7+
newS = ""
8+
9+
if (len(s) != len(goal)):
10+
return False
11+
elif (len(s) == 2):
12+
newS += s[1]
13+
newS += s[0]
14+
15+
if (newS == goal):
16+
return True
17+
else:
18+
return False
19+
elif (len(s) == 1):
20+
return False
21+
else:
22+
indexes = []
23+
24+
for i in range(len(s)):
25+
if (s[i] == goal[i]):
26+
newS += s[i]
27+
else:
28+
newS += "_"
29+
indexes.append(i)
30+
31+
if (len(indexes) == 2):
32+
newS = newS.replace("_", s[indexes[1]], 1)
33+
newS = newS.replace("_", s[indexes[0]])
34+
elif (len(indexes) == 0):
35+
for c in s:
36+
total = s.count(c)
37+
38+
if (total == 2):
39+
first = s.find(c)
40+
s = s.replace(c, "_", 1)
41+
second = s.find(c)
42+
43+
temp = newS[second]
44+
newS = newS.replace(newS[second], newS[first], 1)
45+
newS = newS.replace(newS[first], temp, 1)
46+
else:
47+
return False
48+
49+
if (newS == goal):
50+
return True
51+
else:
52+
return False
53+
54+
print(Solution().buddyStrings("abcd", "abcd"))
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
""" https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string/ """
2+
3+
# Output Limit Exceeded
4+
# 45 / 106 testcases passed
5+
6+
class Solution:
7+
def removeDuplicates(self, s):
8+
s = list(s)
9+
length = len(s)
10+
i = 0
11+
12+
while (i != length):
13+
if (i != length - 1) and (s[i] == s[i + 1]):
14+
s.pop(i)
15+
s.pop(i)
16+
length -= 2
17+
18+
if (i != 0):
19+
i -= 1
20+
else:
21+
i += 1
22+
23+
print("s:", s, "length:", length, "i:", i)
24+
25+
newS = ""
26+
27+
for c in s:
28+
newS += c
29+
30+
return newS
31+
32+
print(Solution().removeDuplicates("aababaab"))

0 commit comments

Comments
(0)

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