forked from TheAlgorithms/Python
- Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathis_isogram.py
30 lines (24 loc) · 872 Bytes
/
is_isogram.py
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
"""
wiki: https://en.wikipedia.org/wiki/Heterogram_(literature)#Isograms
"""
defis_isogram(string: str) ->bool:
"""
An isogram is a word in which no letter is repeated.
Examples of isograms are uncopyrightable and ambidextrously.
>>> is_isogram('Uncopyrightable')
True
>>> is_isogram('allowance')
False
>>> is_isogram('copy1')
Traceback (most recent call last):
...
ValueError: String must only contain alphabetic characters.
"""
ifnotall(x.isalpha() forxinstring):
raiseValueError("String must only contain alphabetic characters.")
letters=sorted(string.lower())
returnlen(letters) ==len(set(letters))
if__name__=="__main__":
input_str=input("Enter a string ").strip()
isogram=is_isogram(input_str)
print(f"{input_str} is {'an'ifisogramelse'not an'} isogram.")