Files
adii1823 b6eb3ef8a7 ch06
2021-10-28 17:38:47 +05:30

41 lines
1.1 KiB
Python

# oop/static.methods.py
class StringUtil:
@staticmethod
def is_palindrome(s, case_insensitive=True):
# we allow only letters and numbers
s = ''.join(c for c in s if c.isalnum()) # Study this!
# For case insensitive comparison, we lower-case s
if case_insensitive:
s = s.lower()
for c in range(len(s) // 2):
if s[c] != s[-c -1]:
return False
return True
@staticmethod
def get_unique_words(sentence):
return set(sentence.split())
print(StringUtil.is_palindrome(
'Radar', case_insensitive=False)) # False: Case Sensitive
print(StringUtil.is_palindrome('A nut for a jar of tuna')) # True
print(StringUtil.is_palindrome('Never Odd, Or Even!')) # True
print(StringUtil.is_palindrome(
'In Girum Imus Nocte Et Consumimur Igni') # Latin! Show-off!
) # True
print(StringUtil.get_unique_words(
'I love palindromes. I really really love them!'))
# {'them!', 'palindromes.', 'I', 'really', 'love'}
"""
$ python static.methods.py
False
True
True
True
{'them!', 'palindromes.', 'I', 'really', 'love'}
"""