


def 				UpperCamelCase__					(  SCREAMING_SNAKE_CASE__						):
 if not all(x.isalpha() for x in string						):
  raise ValueError('String must only contain alphabetic characters.'						)

 __lowerCamelCase		:							List[Any]		 =						sorted(string.lower()						)
 return len(SCREAMING_SNAKE_CASE__						) == len(set(SCREAMING_SNAKE_CASE__						)						)


if __name__ == "__main__":
       lowercase_	   =     input('Enter a string ').strip()

       lowercase_	   =     is_isogram(input_str)
       print(F"""{input_str} is {'an' if isogram else 'not an'} isogram.""")





def 				UpperCamelCase__					(  SCREAMING_SNAKE_CASE__      ,	SCREAMING_SNAKE_CASE__						):
 __lowerCamelCase		:							Union[str, Any]		 =						len(SCREAMING_SNAKE_CASE__						)
 __lowerCamelCase		:							Any		 =						[[False] * (required_sum + 1) for _ in range(arr_len + 1						)]

 # for each arr value, a sum of zero(0) can be formed by not taking any element
 # hence True/1
 for i in range(arr_len + 1						):
  __lowerCamelCase		:							Dict		 =						True

 # sum is not zero and set is empty then false
 for i in range(1      ,	required_sum + 1						):
  __lowerCamelCase		:							Union[str, Any]		 =						False

 for i in range(1      ,	arr_len + 1						):
  for j in range(1      ,	required_sum + 1						):
   if arr[i - 1] > j:
    __lowerCamelCase		:							Tuple		 =						subset[i - 1][j]
   if arr[i - 1] <= j:
    __lowerCamelCase		:							List[Any]		 =						subset[i - 1][j] or subset[i - 1][j - arr[i - 1]]

 return subset[arr_len][required_sum]


if __name__ == "__main__":
       import doctest

       doctest.testmod()

