





'''simple docstring'''






def    UpperCamelCase__      (		lowerCAmelCase							,	lowerCAmelCase  ):





      """simple docstring"""


      _lowerCAmelCase							     =							len(lowerCAmelCase  ) + 1
      _lowerCAmelCase							     =							len(lowerCAmelCase  ) + 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.
      _lowerCAmelCase							     =							[[0 for i in range(lowerCAmelCase  )] for j in range(lowerCAmelCase  )]

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

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

      # since string of zero length will match with pattern where there
      # is at least one * alternatively
      for j in range(1							,	lowerCAmelCase  ):
            _lowerCAmelCase							     =							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							,	lowerCAmelCase  ):
            for j in range(1							,	lowerCAmelCase  ):
                  if input_string[i - 1] == pattern[j - 1] or pattern[j - 1] == ".":
                        _lowerCAmelCase							     =							dp[i - 1][j - 1]

                  elif pattern[j - 1] == "*":
                        if dp[i][j - 2] == 1:
                              _lowerCAmelCase							     =							1
                        elif pattern[j - 2] in (input_string[i - 1], "."):
                              _lowerCAmelCase							     =							dp[i - 1][j]
                        else:
                              _lowerCAmelCase							     =							0
                  else:
                        _lowerCAmelCase							     =							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 :")

      A__				:   List[Any]      ='''aab'''
      A__				:   Optional[int]      ='''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}""")










"""simple docstring"""





def    _snake_case  (  _snake_case :	int	):

      if not isinstance(_snake_case       ,      _snake_case	):
            raise TypeError('''only integers accepted as input'''	)
      else:
            lowerCAmelCase    :		List[str]				=      str(abs(_snake_case	)	)
            lowerCAmelCase    :		Optional[Any]				=      [list(_snake_case	) for char in range(len(_snake_case	)	)]
            for index in range(len(_snake_case	)	):
                  num_transpositions[index].pop(_snake_case	)
            return max(
                int(''''''.join(list(_snake_case	)	)	) for transposition in num_transpositions	)


if __name__ == "__main__":
 __import__('''doctest''').testmod()


