Short Problem Definition:
You are given a string and your task is to swap cases. In other words, convert all lowercase letters to uppercase letters and vice versa.
Link
Complexity:
time complexity is O(N)
space complexity is O(N)
Execution:
I had too much fun with this one, so I refuse to admit that there is a buildin swapcase() function. ASCII can be fun.
Solution:
def swap_case(s):
result = ""
for idx in xrange(len(s)):
ordinal = ord(s[idx])
if (ordinal >= ord('a') and ordinal <= ord('z')) or \
(ordinal >= ord('A') and ordinal <= ord('Z')):
result += chr(ordinal-ord('A')+32)%64+ord('A'))
else:
result += s[idx]
return result