ARTS Week 52
Algorithm 本周的算法题为 1805. 字符串中不同整数的数目 给你一个字符串 word ,该字符串由数字和小写英文字母组成。 请你用空格替换每个不是数字的字符。例如,"a123bc34d8ef34" 将会变成 " 123 34 8 34" 。注意,剩下的这些整数为(相邻彼此至少有一个空格隔开):"123"、"34"、"8" 和 "34" 。 返回对 word 完成替换后形成的 不同 整数的数目。 只有当两个整数的 不含前导零 的十进制表示不同, 才认为这两个整数也不同。 示例 1: 输入:word = "a123bc34d8ef34" 输出:3 解释:不同的整数有 "123"、"34" 和 "8" 。注意,"34" 只计数一次。 实现代码如下: const numDifferentIntegers = function (word) { // 1. 匹配所有的数字,返回一个数组,每个元素是一个数字字符串 const nums = word.match(/\d+/g); // 2. 如果没有匹配到数字,返回0 if (nums === null) { return 0; } // 3. 去掉前导0,返回一个新的数组,每个元素是一个数字字符串 nums.forEach((n, i) => { nums[i] = n.replace(/^0+/, ''); }); // 4. 用Set去重 const set = new Set(nums); // 去重 // 5. 返回Set的大小 return set.size; }; 解题思路: 匹配所有的数字,返回一个数组,每个元素是一个数字字符串。 如果没有匹配到数字,返回0。 去掉前导0,返回一个新的数组,每个元素是一个数字字符串。 用Set去重。 使用 set.size 返回大小,即为所求的值。 Review Scientists find why most ginger cats are male - Breaking News English Lesson ...