+20
python/oct2/level1/interleaveStrings.py
+20
python/oct2/level1/interleaveStrings.py
···
1
+
def interleaveStrings(s1: str, s2: str) -> str:
2
+
"""Interleave two strings."""
3
+
s = ""
4
+
for i in range(max(len(s1), len(s2))):
5
+
if i < len(s1):
6
+
s += s1[i]
7
+
if i < len(s2):
8
+
s += s2[i]
9
+
return s
10
+
11
+
12
+
print("Testing interleaveStrings()...", end="")
13
+
assert interleaveStrings("pto", "yhn") == "python"
14
+
assert interleaveStrings("ab", "xyz?") == "axbyz?"
15
+
assert interleaveStrings("a", "b") == "ab"
16
+
assert interleaveStrings("xyz", "a b") == "xay zb"
17
+
assert interleaveStrings("", "cpcs1") == "cpcs1"
18
+
assert interleaveStrings("cpcs1", "") == "cpcs1"
19
+
assert interleaveStrings("", "") == ""
20
+
print("Passed!")
+19
python/oct2/level1/largestNumber.py
+19
python/oct2/level1/largestNumber.py
···
1
+
def largestNumber(text: str) -> int | None:
2
+
"""Find the largest number in a string."""
3
+
number = [int(word) for word in text.split() if word.isdigit()]
4
+
return max(number) if number else None
5
+
6
+
7
+
print("Testing largestNumber()...", end="")
8
+
assert largestNumber("I saw 3 dogs, 17 cats, and 14 cows!") == 17
9
+
assert largestNumber("One person ate two hot dogs!") == None
10
+
assert largestNumber("There are no numbers in this text.") == None
11
+
assert largestNumber("I have 2 cats, but the shelter has 20") == 20
12
+
text = "It is 82 degrees Fahrenheit, which is 28 degree Celsius."
13
+
assert largestNumber(text) == 82
14
+
text = "Not one of my 10 penguins are taller than 2 feet 11 inches."
15
+
assert largestNumber(text) == 11
16
+
assert largestNumber("15-112 is also 112 and is my favorite class.") == 112
17
+
assert largestNumber("0 classifies as an integer") == 0
18
+
assert largestNumber("") == None
19
+
print("Passed!")
+14
python/oct2/level1/rotateString.py
+14
python/oct2/level1/rotateString.py
···
1
+
def rotateString(s: str, k: int) -> str:
2
+
"""Rotate a string by k positions."""
3
+
k %= len(s)
4
+
return s[k:] + s[:k]
5
+
6
+
7
+
print("Testing rotateString()...", end="")
8
+
assert rotateString("abcd", 1) == "bcda"
9
+
assert rotateString("abcd", -1) == "dabc"
10
+
assert rotateString("efgh", 4) == "efgh"
11
+
assert rotateString("coffee", 2) == "ffeeco"
12
+
assert rotateString("112cmu", -3) == "cmu112"
13
+
assert rotateString("water", -9) == "aterw"
14
+
print("Passed!")
+24
python/oct2/level1/sameChars.py
+24
python/oct2/level1/sameChars.py
···
1
+
def sameChars(s1: str, s2: str) -> bool:
2
+
"""Check if two strings have the same characters regardless of order or count."""
3
+
if not (isinstance(s1, str) and isinstance(s2, str)):
4
+
return False
5
+
c1 = list(set(s1))
6
+
c2 = list(set(s2))
7
+
c1.sort()
8
+
c2.sort()
9
+
print(c1, c2)
10
+
return c1 == c2
11
+
12
+
13
+
print("Testing sameChars()...", end="")
14
+
assert sameChars("abc", "bac") == True
15
+
assert sameChars("aaaaabbbbbbccccc", "abc") == True
16
+
assert sameChars("abc", "ba") == False
17
+
assert sameChars("ba", "abc") == False
18
+
assert sameChars("AAAAAAaaaa", "Aa") == True
19
+
assert sameChars("NNN", "n") == False
20
+
assert sameChars("123", "123") == True
21
+
assert sameChars("", "a") == False
22
+
assert sameChars("", "") == True
23
+
assert sameChars(14, "14") == False
24
+
print("Passed!")
+13
python/oct2/level1/vowelCount.py
+13
python/oct2/level1/vowelCount.py
···
1
+
def vowelCount(s: str) -> int:
2
+
"""Count the number of vowels (a, e, i, o, u) in a string."""
3
+
s = s.lower()
4
+
return s.count("a") + s.count("e") + s.count("i") + s.count("o") + s.count("u")
5
+
6
+
7
+
print("Testing vowelCount()...", end="")
8
+
assert vowelCount("Abc def!!! a? yzyzyz!") == 3
9
+
assert vowelCount("Hi! How are you?") == 6
10
+
assert vowelCount("AAAEEEiOL") == 8
11
+
assert vowelCount("Rhythm") == 0
12
+
assert vowelCount("WHY, TRY SHY FLY RHYTHMS SLYLY.") == 0
13
+
print("Passed!")