


from ..utils import DummyObject, requires_backends







class     __lowercase    (				metaclass=__UpperCAmelCase   ):



		"""simple docstring"""

		UpperCamelCase			: str           =						["note_seq"]







		def __init__(      self						,	*A						,	**A     )   ->      Optional[Any]:







					'''simple docstring'''







					requires_backends(self						,	["""note_seq"""]     )







		@classmethod
		def  __A					(      cls						,	*A						,	**A     )   ->      Any:







					'''simple docstring'''







					requires_backends(cls						,	["""note_seq"""]     )







		@classmethod
		def  __A					(      cls						,	*A						,	**A     )   ->      int:







					'''simple docstring'''







					requires_backends(cls						,	["""note_seq"""]     )


"""simple docstring"""






import functools



def   a_						(					lowerCamelCase					,			lowerCamelCase       ):
				UpperCAmelCase__             =							len(lowerCamelCase       )
				UpperCAmelCase__             =							len(lowerCamelCase       )

				@functools.cache
				def min_distance(lowerCamelCase					,			lowerCamelCase       ) -> int:
								# if first word index is overflow - delete all from the second word
								if indexa >= len_worda:
												return len_worda - indexa
								# if second word index is overflow - delete all from the first word
								if indexa >= len_worda:
												return len_worda - indexa
								UpperCAmelCase__             =							int(worda[indexa] != worda[indexa]       )  # current letters not identical
								return min(
								    1 + min_distance(indexa + 1					,			lowerCamelCase       )					,			1 + min_distance(lowerCamelCase					,			indexa + 1       )					,			diff + min_distance(indexa + 1					,			indexa + 1       )					,			)

				return min_distance(0					,			0       )


if __name__ == "__main__":
						import doctest

						doctest.testmod()



