mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-23 21:11:08 +00:00
Added function that checks if a string is an isogram (#7608)
* Added function that checks if a string is an isogram. * Added wiki reference and fixed comments. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Made function name more self-documenting. Raise ValueError if string contains 1 or more digits. Renamed file. Lowercase string inside function. * Removed check_isogram.py (file renamed). * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fixed test failure. * Raise ValueError when string has non-alpha characters. Removed import. Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
505c5e20fa
commit
68f6e9ac30
30
strings/is_isogram.py
Normal file
30
strings/is_isogram.py
Normal file
|
@ -0,0 +1,30 @@
|
|||
"""
|
||||
wiki: https://en.wikipedia.org/wiki/Heterogram_(literature)#Isograms
|
||||
"""
|
||||
|
||||
|
||||
def is_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.
|
||||
"""
|
||||
if not all(x.isalpha() for x in string):
|
||||
raise ValueError("String must only contain alphabetic characters.")
|
||||
|
||||
letters = sorted(string.lower())
|
||||
return len(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' if isogram else 'not an'} isogram.")
|
Loading…
Reference in New Issue
Block a user