code: def interleaving_strings_2(A, B, C):
      nA, nB, nC = len(A), len(B), len(C)
      if nA + nB != nC:
          return 0
  
      dp = [0 for j in range(nB + 1)]
  
      # starting values
      dp[0] = 1
  
      for i in range(1, nB + 1):
          if B[i - 1] == C[i - 1]:
              dp[i] = dp[i - 1]
  
      # run dp
      for i in range(1, nA + 1):
          if A[i - 1] != C[i - 1]:
              # reset the value
              dp[0] = 0
  
          for j in range(1, nB + 1):
              if A[i - 1] != C[i + j - 1]:
                  # reset the value
                  dp[j] = 0
              if B[j - 1] == C[i + j - 1]:
                  dp[j] += dp[j - 1]
  
      return dp[nB]
  
label_desc: Use image node_id 2 for calling a global function with example usage: interleaving_strings_2(A, B, C) and returns: dp, int