






def 						__UpperCAmelCase			(     a_							,     a_):
							snake_case_				=							len(a_) + 1
							snake_case_				=							len(a_) + 1

							# dp is a 2d matrix where dp[i][j] denotes whether prefix string of
							# length i of input_string matches with prefix string of length j of
							# given pattern.
							# "dp" stands for dynamic programming.
							snake_case_				=							[[0 for i in range(a_)] for j in range(a_)]

							# since string of zero length match pattern of zero length
							snake_case_				=							1

							# since pattern of zero length will never match with string of non-zero length
							for i in range(1							,     a_):
														snake_case_				=							0

							# since string of zero length will match with pattern where there
							# is at least one * alternatively
							for j in range(1							,     a_):
														snake_case_				=							dp[0][j - 2] if pattern[j - 1] == '*' else 0

							# now using bottom-up approach to find for all remaining lengths
							for i in range(1							,     a_):
														for j in range(1							,     a_):
																					if input_string[i - 1] == pattern[j - 1] or pattern[j - 1] == ".":
																												snake_case_				=							dp[i - 1][j - 1]

																					elif pattern[j - 1] == "*":
																												if dp[i][j - 2] == 1:
																																			snake_case_				=							1
																												elif pattern[j - 2] in (input_string[i - 1], "."):
																																			snake_case_				=							dp[i - 1][j]
																												else:
																																			snake_case_				=							0
																					else:
																												snake_case_				=							0

							return bool(dp[-1][-1])


if __name__ == "__main__":
	import doctest

	doctest.testmod()
	# inputing the strings
	# input_string = input("input a string :")
	# pattern = input("input a pattern :")

	lowercase  							=					"aab"
	lowercase  							=					"c*a*b"

	# using function to check whether given string matches the given pattern
	if match_pattern(input_string, pattern):
		print(f'{input_string} matches the given pattern {pattern}')
	else:
		print(f'{input_string} does not match with the given pattern {pattern}')













from typing import TYPE_CHECKING

from ...utils import _LazyModule


lowercase  							=					{"processing_wav2vec2_with_lm": ["Wav2Vec2ProcessorWithLM"]}


if TYPE_CHECKING:
	from .processing_wavaveca_with_lm import WavaVecaProcessorWithLM
else:
	import sys

	lowercase  							=					_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)





