input: def add_large_numbers(num1: str, num2: str) -> str:
      """ Adds two large numbers represented as strings. Each number is reversed before
      addition to handle carry easily. The result string is also reversed at the end.
      
      >>> add_large_numbers("111", "1337")
      '1448'
      >>> add_large_numbers("0", "9999")
      '9999'
      """
output:     num1 = num1[::-1]
      num2 = num2[::-1]
      carry = 0
      result = []
      max_len = max(len(num1), len(num2))
      
      for i in range(max_len):
          digit1 = int(num1[i]) if i < len(num1) else 0
          digit2 = int(num2[i]) if i < len(num2) else 0
          total = digit1 + digit2 + carry
          carry = total // 10
          result.append(str(total % 10))
      
      if carry:
          result.append(str(carry))
      
      return ''.join(result)[::-1]