Skip to content

415. 字符串相加

415. 字符串相加

代码

javascript
// 415. 字符串相加:https://leetcode.cn/problems/add-strings/
// 输入:num1 = "11", num2 = "123"
// 输出:'134'

export function addStrings (num1, num2) {
  let i = num1.length - 1
  let j = num2.length - 1
  let add = 0
  const ans = []
  while (i >= 0 || j >= 0 || add !== 0) {
    const x = i >= 0 ? Number(num1[i]) : 0
    const y = j >= 0 ? Number(num2[j]) : 0
    const result = x + y + add
    ans.unshift(result % 10)
    add = Math.floor(result / 10)
    i--
    j--
  }
  return ans.join('')
}
typescript
// 415. 字符串相加:https://leetcode.cn/problems/add-strings/
// 输入:num1 = "11", num2 = "123"
// 输出:'134'

export function addStrings (num1: string, num2: string): string {
  let i = num1.length - 1
  let j = num2.length - 1
  let add = 0
  const ans: number[] = []
  while (i >= 0 || j >= 0 || add !== 0) {
    const x = i >= 0 ? Number(num1[i]) : 0
    const y = j >= 0 ? Number(num2[j]) : 0
    const result = x + y + add
    ans.unshift(result % 10)
    add = Math.floor(result / 10)
    i--
    j--
  }
  return ans.join('')
}

测试代码

ts
import { expect, test } from 'vitest'
import { addStrings } from './typescript.ts'
import { addStrings as addStringsJs } from './javascript.js'

test(`addStrings`, () => {
  expect(addStrings('11', '123')).toBe('134')
  expect(addStrings('456', '77')).toBe('533')
  expect(addStrings('0', '0')).toBe('0')
})

test(`addStringsJs`, () => {
  expect(addStringsJs('11', '123')).toBe('134')
  expect(addStringsJs('456', '77')).toBe('533')
  expect(addStringsJs('0', '0')).toBe('0')
})