ARTS Week 44

Algorithm 本周的算法题为 557. 反转字符串中的单词 III 给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 输入:s = "Let's take LeetCode contest" 输出:"s'teL ekat edoCteeL tsetnoc" 实现代码如下: const reverseWords = function (s) { let result = ''; s.match(/\S+/g).forEach(word => { result += word.split('').reverse().join('') + ' '; }); return result.trimEnd(); } 解题思路: String.prototype.match() 方法检索字符串与正则表达式进行匹配的结果。比如以上示例,s.match(/\S+/g)的结果为 [ "Let's", 'take', 'LeetCode', 'contest' ]。 Review Record number of people in space - Breaking News English Lesson 太空变得越来越拥挤了。目前,太空中创纪录地有19人。这一记录是在俄罗斯联盟号宇宙飞船的三名乘员与国际空间站(ISS)对接后打破的。最近的任务包括NASA宇航员Don Pettit和俄罗斯宇航员Alexey Ovchinin以及Ivan Vagner。他们将国际空间站的居民人数增加到了12人。中国的宇航员也是这一记录的一部分。他们在天宫空间站有三名“太空人”在工作。剩下的四名太空旅行者是SpaceX的极光黎明任务的一部分。该项目在上周四见证了历史上第一次全平民太空行走。 关于最近的记录有一点争议,那就是关于外太空起点的定义。NASA和美国军方将地球大气层和外太空的边界视为海拔80公里。按照这种解释,人类在太空中的记录是20人,在2023年5月和今年1月创下。然而,外太空边缘的传统定义被称为卡门线。国际航空联合会将这条线定为海拔100公里。新的记录使用了这个定义。卡门线用于法律目的,以区分飞机和宇宙飞船。 Tip 在给项目配置Sentry时,要将sourcemaps通过sentry-wizard自动上传至Sentry,但是却提示以下报错信息: Loading Wizard failed. Did you provide the right URL? 再三确认URL是没有问题,所以,就很奇怪这是什么问题? 使用curl命令是没有问题的,但是,返回了Sentry网站没有证书的信息。 查看Github上面的Issues,发现有类似的问题,如下所示: Loading Wizard failed for NextJs #416 提供的解决方案是,使用命令 set NODE_TLS_REJECT_UNAUTHORIZED=0 ,因为在Node.js 中,NODE_TLS_REJECT_UNAUTHORIZED 是一个环境变量,用于控制Node.js在执行HTTPS请求时是否应该拒绝未经授权的SSL证书。 ...

2024-10-09 · 1 分钟 · 125 字

ARTS Week 43

Algorithm 本周的算法题为 1822. 数组元素积的符号 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 。 如果 x 是负数,返回 -1 。 如果 x 是等于 0 ,返回 0 。 给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。 返回 signFunc(product) 。 示例 1: 输入:nums = [-1,-2,-3,-4,3,2,1] 输出:1 解释:数组中所有值的乘积是 144 ,且 signFunc(144) = 1 实现代码如下: let arraySign = function (nums) { let product = 1 nums.forEach(n => { if (n === 0) { product = 0 return } product = product * n }); return signFunc(product) function signFunc(p) { if (p > 0) { return 1 } else if (p < 0) { return -1 } else { return 0 } } } 解题思路: 题目很简单。 Review Nature can reduce anxiety and boost mental health - Breaking News English Lesson ...

2024-10-08 · 2 分钟 · 240 字

ARTS Week 42

Algorithm 本周的算法题为 2283. 判断一个数的数字计数是否等于数位的值 给你一个下标从 0 开始长度为 n 的字符串 num ,它只包含数字。 如果对于 每个 0 <= i < n 的下标 i ,都满足数位 i 在 num 中出现了 num[i]次,那么请你返回 true ,否则返回 false 。 示例 1: 解释: num[0] = '1' 。数字 0 在 num 中出现了一次。 num[1] = '2' 。数字 1 在 num 中出现了两次。 num[2] = '1' 。数字 2 在 num 中出现了一次。 num[3] = '0' 。数字 3 在 num 中出现了零次。 "1210" 满足题目要求条件,所以返回 true 。 实现代码如下: const digitCount = function (num) { for (let i = 0; i < num.length; i++) { const n = num[i]; console.log({ i, n }); if (Number(n) !== getCount(i, num)) { return false } } return true function getCount(char, s) { let count = 0 let postion = s.indexOf(char) while (postion !==-1) { count++ postion = s.indexOf(char, postion + 1) } return count } }; 解题思路: 只需求得下标字符i在字符串中出现的次数与num[i]相等即可。 Review Marmoset monkeys call each other by name - Breaking News English Lesson ...

2024-10-02 · 1 分钟 · 188 字

ARTS Week 41

Algorithm 本周的算法题为 438. 找到字符串中所有字母异位词 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s = "cbaebabacd", p = "abc" 输出: [0,6] 解释: 起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。 起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。 实现代码如下: const findAnagrams = function (s, p) { if (p.length > s.length) { return []; } let pCount = new Array(26).fill(0); let sCount = new Array(26).fill(0); let result = []; for (let char of p) { pCount[char.charCodeAt(0) - 'a'.charCodeAt(0)] += 1; } for (let i = 0; i < p.length; i++) { sCount[s.charCodeAt(i) - 'a'.charCodeAt(0)] += 1; } if (isEqual(pCount, sCount)) { result.push(0); } for (let i = p.length; i < s.length; i++) { sCount[s.charCodeAt(i - p.length) - 'a'.charCodeAt(0)] -= 1; sCount[s.charCodeAt(i) - 'a'.charCodeAt(0)] += 1; if (isEqual(pCount, sCount)) { result.push(i - p.length + 1); } } function isEqual(count1, count2) { for (let i = 0; i < 26; i++) { if (count1[i] !== count2[i]) { return false; } } return true; } return result; }; 解题思路: 创建pCount和sCount字母表,通过一个字母的Unicode编码减去字母a的Unicode编码,得到其在字母表中的位置,并且将其计数,通过滑动窗口,左减右加,最后通过对比相同位置计数是否相等,来确定是否是字母异位词。 Review Eye colour change is riskiest cosmetic surgery - Breaking News English Lesson ...

2024-09-30 · 1 分钟 · 199 字

ARTS Week 40

Algorithm 本周的算法题为 189. 轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4] 实现代码如下: const rotate = function (nums, k) { let count = 0; if (k <= nums.length) { count = k; } else { count = k % nums.length; } const middlePart = nums.splice(nums.length - count, count); nums.unshift(...middlePart); return nums; } 解题思路: 通过示例1,可以找到规律,元素向右轮转了k个位置,相当于从 nums.length - count 位置截取然后再添加到数组的开头位置。如果k的值等于数组长度,那么,经过向右轮转之后,各元素还是原位。因此,使用 k % nums.length 取余,处理当k大于数组长度的情况。 Review 1Scientists fear people will fall in love with AI voices - Breaking News English Lesson 拥有 ChatGPT 的公司 OpenAI 担心人们可能会在情感上依赖人工智能的声音。该公司上周向用户发布了一种新的“高级语音模式”。聊天机器人配备了一系列栩栩如生的声音,这些声音与人声几乎没有区别。他们可以实时进行真实的对话,在适当的时间大笑,用“嗯”、“啊”和“嗯”插话,他们可以适应被打断。OpenAI 的一份报告指出,新发布的、听起来像人的声音可能会导致人们依赖 AI 来陪伴,甚至浪漫和爱情。它警告说:“用户可能会与 AI 建立社交关系,从而减少他们对人类互动的需求。 OpenAI 报告警告说,未来的聊天机器人可能会从根本上改变社会。它们将重塑我们与家人、朋友和同事的互动方式。他们甚至可能篡夺人类之间的交流。该报告指出了新工具的好处。这些包括给孤独的人带来安慰和友谊,给那些缺乏自信的人信心。报告称,人们可能会获得足够的信心来开始在现实世界中约会。另一方面,聊天机器人可能会导致人们变得更粗鲁、更不耐烦和更自私。Wired.com 写道,新的聊天机器人包括“潜在的……放大社会偏见,传播虚假信息,并帮助开发化学或生物武器”。 Tip 在运行electron-vue项目时,打算把node_modules删除了再重新安装,却提示node_modules/electron文件夹正在被使用,删除失败。然后,把相关窗口都关闭了还是不行,猜测是有关联的进程没有关闭,所以,就看下怎么处理。步骤如下: ...

2024-09-19 · 1 分钟 · 130 字