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')
})