code: def build_palindrome(word, dp, left, right):
      # similar like the first solution, but without exponentialy branching
      # this is linear time, we already know the inserting values
      if left > right:
          return ""
      if left == right:
          return word[left]
  
      if word[left] == word[right]:
          return (
              word[left]
              + build_palindrome(word, dp, left + 1, right - 1)
              + word[left]
          )
  
      if dp[left + 1][right] < dp[left][right - 1]:
          return (
              word[left]
              + build_palindrome(word, dp, left + 1, right)
              + word[left]
          )
  
      return (
          word[right]
          + build_palindrome(word, dp, left, right - 1)
          + word[right]
      )
  
label_desc: Use image node_id 3 for calling a global function with example usage: build_palindrome(word, dp, left, right) and returns: unknown, str, word, unknown, unknown