From a920efef279b83be0a06301efe1eb53930cd4974 Mon Sep 17 00:00:00 2001 From: yige Date: Tue, 5 May 2020 20:58:22 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E6=9C=80=E5=A4=A7=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++++ src/string/largest-number.js | 7 +++++++ test/string/largest-number.test.js | 10 ++++++++++ 3 files changed, 22 insertions(+) create mode 100644 src/string/largest-number.js create mode 100644 test/string/largest-number.test.js diff --git a/README.md b/README.md index 5a1c2b5..17f3f43 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,11 @@ LeetCode 与 LintCode 解题记录。此为个人练习仓库,代码中对重 - LeetCode 3. 无重复字符的最长子串 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ - LintCode 384. 最长无重复字符的子串 https://www.lintcode.com/problem/longest-substring-without-repeating-characters/description +- [最大数](src/string/largest-number.js) + + - LeetCode 179. 最大数 https://leetcode-cn.com/problems/largest-number/ + - LintCode 184. 最大数 https://www.lintcode.com/problem/largest-number/description + ## 数组 - [电话号码的字母组合](src/array/letter-combinations-of-a-phone-number.js) diff --git a/src/string/largest-number.js b/src/string/largest-number.js new file mode 100644 index 0000000..a7208ea --- /dev/null +++ b/src/string/largest-number.js @@ -0,0 +1,7 @@ +/** + * @param {number[]} nums + * @return {string} + */ +export const largestNumber = function (nums) { + return nums.sort((a, b) => `${b}${a}` - `${a}${b}`).join('').replace(/^0+/, '') || '0' +} diff --git a/test/string/largest-number.test.js b/test/string/largest-number.test.js new file mode 100644 index 0000000..00710f1 --- /dev/null +++ b/test/string/largest-number.test.js @@ -0,0 +1,10 @@ +import { largestNumber } from '../../src/string/largest-number' + +test('最大数', () => { + expect(largestNumber([10, 2])).toBe('210') + expect(largestNumber([3, 30, 34, 5, 9])).toBe('9534330') + expect(largestNumber([1, 20, 23, 4, 8])).toBe('8423201') + expect(largestNumber([4, 6, 65])).toBe('6654') + expect(largestNumber([])).toBe('0') + expect(largestNumber([0, 0])).toBe('0') +})