
def 				SCREAMING_SNAKE_CASE_   (      UpperCamelCase__ = "The quick brown fox jumps over the lazy dog"			,		):
      UpperCamelCase__     : Optional[Any]											=					set()

      # Replace all the whitespace in our sentence
      UpperCamelCase__     : Optional[Any]											=					input_str.replace(''' '''			,		''''''		)
      for alpha in input_str:
            if "a" <= alpha.lower() <= "z":
                  frequency.add(alpha.lower()		)
      return len(UpperCamelCase__		) == 2_6


def 				SCREAMING_SNAKE_CASE_   (      UpperCamelCase__ = "The quick brown fox jumps over the lazy dog"			,		):
      UpperCamelCase__     : Tuple											=					[False] * 2_6
      for char in input_str:
            if char.islower():
                  UpperCamelCase__     : str											=					True
            elif char.isupper():
                  UpperCamelCase__     : List[str]											=					True
      return all(UpperCamelCase__		)


def 				SCREAMING_SNAKE_CASE_   (      UpperCamelCase__ = "The quick brown fox jumps over the lazy dog"			,		):
      return len({char for char in input_str.lower() if char.isalpha()}		) == 2_6


def 				SCREAMING_SNAKE_CASE_   (      ):
      from timeit import timeit

      UpperCamelCase__     : Optional[Any]											=					'''from __main__ import is_pangram, is_pangram_faster, is_pangram_fastest'''
      print(timeit('''is_pangram()'''			,		setup=UpperCamelCase__		)		)
      print(timeit('''is_pangram_faster()'''			,		setup=UpperCamelCase__		)		)
      print(timeit('''is_pangram_fastest()'''			,		setup=UpperCamelCase__		)		)
      # 5.348480500048026, 2.6477354579837993, 1.8470395830227062
      # 5.036091582966037, 2.644472333951853,  1.8869528750656173


if __name__ == "__main__":
    import doctest

    doctest.testmod()
    benchmark()




def 				SCREAMING_SNAKE_CASE_   (      UpperCamelCase__			,		UpperCamelCase__		):

      def get_matched_characters(UpperCamelCase__			,		UpperCamelCase__		) -> str:
            UpperCamelCase__     : Union[str, Any]											=					[]
            UpperCamelCase__     : Union[str, Any]											=					min(len(_stra		)			,		len(_stra		)		) // 2
            for i, l in enumerate(_stra		):
                  UpperCamelCase__     : Optional[int]											=					int(max(0			,		i - limit		)		)
                  UpperCamelCase__     : List[str]											=					int(min(i + limit + 1			,		len(_stra		)		)		)
                  if l in _stra[left:right]:
                        matched.append(UpperCamelCase__		)
                        UpperCamelCase__     : List[str]											=					f'''{_stra[0:_stra.index(UpperCamelCase__		)]} {_stra[_stra.index(UpperCamelCase__		) + 1:]}'''

            return "".join(UpperCamelCase__		)

      # matching characters
      UpperCamelCase__     : Any											=					get_matched_characters(UpperCamelCase__			,		UpperCamelCase__		)
      UpperCamelCase__     : Union[str, Any]											=					get_matched_characters(UpperCamelCase__			,		UpperCamelCase__		)
      UpperCamelCase__     : List[Any]											=					len(UpperCamelCase__		)

      # transposition
      UpperCamelCase__     : str											=					(
          len([(ca, ca) for ca, ca in zip(UpperCamelCase__			,		UpperCamelCase__		) if ca != ca]		) // 2
      )

      if not match_count:
            UpperCamelCase__     : Union[str, Any]											=					0.0
      else:
            UpperCamelCase__     : Optional[int]											=					(
                1
                / 3
                * (
                    match_count / len(UpperCamelCase__		)
                    + match_count / len(UpperCamelCase__		)
                    + (match_count - transpositions) / match_count
                )
            )

      # common prefix up to 4 characters
      UpperCamelCase__     : Dict											=					0
      for ca, ca in zip(stra[:4]			,		stra[:4]		):
            if ca == ca:
                  prefix_len += 1
            else:
                  break

      return jaro + 0.1 * prefix_len * (1 - jaro)


if __name__ == "__main__":
    import doctest

    doctest.testmod()
    print(jaro_winkler("hello", "world"))


