input: Write a function to add two large numbers represented as strings. The function should handle the addition of these numbers correctly and return the result as a string.
  assert add_large_numbers("111", "1337")=="1448"
  assert add_large_numbers("999", "1")=="1000"
  assert add_large_numbers("123456789", "987654321")=="1111111110"
  assert add_large_numbers("0", "0")=="0"
  assert add_large_numbers("", "1337")=="1337"
  assert add_large_numbers("111", "")=="111"
output: def add_large_numbers(num1, num2):
      if not num1:
          return num2
      if not num2:
          return num1
      carry = 0
      result = []
      len1, len2 = len(num1), len(num2)
      max_len = max(len1, len2)
      num1 = num1.zfill(max_len)
      num2 = num2.zfill(max_len)
      for i in range(max_len - 1, -1, -1):
          digit_sum = int(num1[i]) + int(num2[i]) + carry
          carry = digit_sum // 10
          result.append(str(digit_sum % 10))
      if carry:
          result.append(str(carry))
      return ''.join(result[::-1])