




'''simple docstring'''




def      a_							(      __snake_case							:			str   )							->						str:



       """simple docstring"""
       lowerCamelCase_							=0

       # if input_string is "aba" than new_input_string become "a|b|a"
       lowerCamelCase_							=''''''
       lowerCamelCase_							=''''''

       # append each character + "|" in new_string for range(0, length-1)
       for i in input_string[: len(__snake_case   ) - 1]:
              new_input_string += i + "|"
       # append last character
       new_input_string += input_string[-1]

       # we will store the starting and ending of previous furthest ending palindromic
       # substring
       lowerCamelCase_,      lowerCamelCase_							=0, 0

       # length[i] shows the length of palindromic substring with center i
       lowerCamelCase_							=[1 for i in range(len(__snake_case   )   )]

       # for each character in new_string find corresponding palindromic string
       lowerCamelCase_							=0
       for j in range(len(__snake_case   )   ):
              lowerCamelCase_							=1 if j > r else min(length[l + r - j] // 2   ,       r - j + 1   )
              while (
                  j - k >= 0
                  and j + k < len(__snake_case   )
                  and new_input_string[k + j] == new_input_string[j - k]
              ):
                     k += 1

              lowerCamelCase_							=2 * k - 1

              # does this string is ending after the previously explored end (that is r) ?
              # if yes the update the new r to the last index of this
              if j + k - 1 > r:
                     lowerCamelCase_							=j - k + 1  # noqa: E741
                     lowerCamelCase_							=j + k - 1

              # update max_length and start position
              if max_length < length[j]:
                     lowerCamelCase_							=length[j]
                     lowerCamelCase_							=j

    # create that string
       lowerCamelCase_							=new_input_string[start - max_length // 2 : start + max_length // 2 + 1]
       for i in s:
              if i != "|":
                     output_string += i

       return output_string


if __name__ == "__main__":
     import doctest

     doctest.testmod()









"""simple docstring"""

from functools import lru_cache




@lru_cache
def __lowercase			(							_a    ):
    if num < 0:
        raise ValueError('''Number should not be negative.'''    )

    return 1 if num in (0, 1) else num * factorial(num - 1    )


if __name__ == "__main__":
     import doctest

     doctest.testmod()





