Skip to content

Commit 78bd110

Browse files
committed
fix:修复填充错误的bug&删除src下题目
1 parent c2606e6 commit 78bd110

File tree

25 files changed

+223
-1090
lines changed

25 files changed

+223
-1090
lines changed

common/resources/store.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"today":"2182","today-question-info":{"enName":"stone-game-vii","title":"石子游戏 VII","detail":"<p>石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,<strong>爱丽丝先开始</strong> 。</p>\n\n<p>有 <code>n</code> 块石子排成一排。每个玩家的回合中,可以从行中 <strong>移除</strong> 最左边的石头或最右边的石头,并获得与该行中剩余石头值之 <strong>和</strong> 相等的得分。当没有石头可移除时,得分较高者获胜。</p>\n\n<p>鲍勃发现他总是输掉游戏(可怜的鲍勃,他总是输),所以他决定尽力 <strong>减小得分的差值</strong> 。爱丽丝的目标是最大限度地 <strong>扩大得分的差值</strong> 。</p>\n\n<p>给你一个整数数组 <code>stones</code> ,其中 <code>stones[i]</code> 表示 <strong>从左边开始</strong> 的第 <code>i</code> 个石头的值,如果爱丽丝和鲍勃都 <strong>发挥出最佳水平</strong> ,请返回他们 <strong>得分的差值</strong> 。</p>\n\n<p> </p>\n\n<p><strong>示例 1:</strong></p>\n\n<pre>\n<strong>输入:</strong>stones = [5,3,1,4,2]\n<strong>输出:</strong>6\n<strong>解释:</strong>\n- 爱丽丝移除 2 ,得分 5 + 3 + 1 + 4 = 13 。游戏情况:爱丽丝 = 13 ,鲍勃 = 0 ,石子 = [5,3,1,4] 。\n- 鲍勃移除 5 ,得分 3 + 1 + 4 = 8 。游戏情况:爱丽丝 = 13 ,鲍勃 = 8 ,石子 = [3,1,4] 。\n- 爱丽丝移除 3 ,得分 1 + 4 = 5 。游戏情况:爱丽丝 = 18 ,鲍勃 = 8 ,石子 = [1,4] 。\n- 鲍勃移除 1 ,得分 4 。游戏情况:爱丽丝 = 18 ,鲍勃 = 12 ,石子 = [4] 。\n- 爱丽丝移除 4 ,得分 0 。游戏情况:爱丽丝 = 18 ,鲍勃 = 12 ,石子 = [] 。\n得分的差值 18 - 12 = 6 。\n</pre>\n\n<p><strong>示例 2:</strong></p>\n\n<pre>\n<strong>输入:</strong>stones = [7,90,5,1,100,10,10,2]\n<strong>输出:</strong>122</pre>\n\n<p> </p>\n\n<p><strong>提示:</strong></p>\n\n<ul>\n\t<li><code>n == stones.length</code></li>\n\t<li><code>2 <= n <= 1000</code></li>\n\t<li><code>1 <= stones[i] <= 1000</code></li>\n</ul>\n","id":"1690","jsCode":"/**\n * @param {number[]} stones\n * @return {number}\n */\nvar stoneGameVII = function(stones) {\n\n};","date":"2024-02-03"},"today-tag":"82","random-id":1314,"random-question-info":{"enName":"multiply-strings","title":"字符串相乘","detail":"<p>给定两个以字符串形式表示的非负整数&nbsp;<code>num1</code>&nbsp;和&nbsp;<code>num2</code>,返回&nbsp;<code>num1</code>&nbsp;和&nbsp;<code>num2</code>&nbsp;的乘积,它们的乘积也表示为字符串形式。</p>\n\n<p><strong>注意:</strong>不能使用任何内置的 BigInteger 库或直接将输入转换为整数。</p>\n\n<p>&nbsp;</p>\n\n<p><strong>示例 1:</strong></p>\n\n<pre>\n<strong>输入:</strong> num1 = \"2\", num2 = \"3\"\n<strong>输出:</strong> \"6\"</pre>\n\n<p><strong>示例&nbsp;2:</strong></p>\n\n<pre>\n<strong>输入:</strong> num1 = \"123\", num2 = \"456\"\n<strong>输出:</strong> \"56088\"</pre>\n\n<p>&nbsp;</p>\n\n<p><strong>提示:</strong></p>\n\n<ul>\n\t<li><code>1 &lt;= num1.length, num2.length &lt;= 200</code></li>\n\t<li><code>num1</code>&nbsp;和 <code>num2</code>&nbsp;只能由数字组成。</li>\n\t<li><code>num1</code>&nbsp;和 <code>num2</code>&nbsp;都不包含任何前导零,除了数字0本身。</li>\n</ul>\n","id":"43","jsCode":"/**\n * @param {string} num1\n * @param {string} num2\n * @return {string}\n */\nvar multiply = function(num1, num2) {\n\n};"},"specified-question-info":{"enName":"reverse-nodes-in-k-group","title":"K 个一组翻转链表","detail":"<p>给你链表的头节点 <code>head</code> ,每&nbsp;<code>k</code><em>&nbsp;</em>个节点一组进行翻转,请你返回修改后的链表。</p>\n\n<p><code>k</code> 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是&nbsp;<code>k</code><em>&nbsp;</em>的整数倍,那么请将最后剩余的节点保持原有顺序。</p>\n\n<p>你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。</p>\n\n<p>&nbsp;</p>\n\n<p><strong>示例 1:</strong></p>\n<img alt=\"\" src=\"https://assets.leetcode.com/uploads/2020/10/03/reverse_ex1.jpg\" style=\"width: 542px; height: 222px;\" />\n<pre>\n<strong>输入:</strong>head = [1,2,3,4,5], k = 2\n<strong>输出:</strong>[2,1,4,3,5]\n</pre>\n\n<p><strong>示例 2:</strong></p>\n\n<p><img alt=\"\" src=\"https://assets.leetcode.com/uploads/2020/10/03/reverse_ex2.jpg\" style=\"width: 542px; height: 222px;\" /></p>\n\n<pre>\n<strong>输入:</strong>head = [1,2,3,4,5], k = 3\n<strong>输出:</strong>[3,2,1,4,5]\n</pre>\n\n<p>&nbsp;</p>\n<strong>提示:</strong>\n\n<ul>\n\t<li>链表中的节点数目为 <code>n</code></li>\n\t<li><code>1 &lt;= k &lt;= n &lt;= 5000</code></li>\n\t<li><code>0 &lt;= Node.val &lt;= 1000</code></li>\n</ul>\n\n<p>&nbsp;</p>\n\n<p><strong>进阶:</strong>你可以设计一个只用 <code>O(1)</code> 额外内存空间的算法解决此问题吗?</p>\n\n<ul>\n</ul>\n","id":"25","jsCode":"/**\n * Definition for singly-linked list.\n * function ListNode(val, next) {\n * this.val = (val===undefined ? 0 : val)\n * this.next = (next===undefined ? null : next)\n * }\n */\n/**\n * @param {ListNode} head\n * @param {number} k\n * @return {ListNode}\n */\nvar reverseKGroup = function(head, k) {\n\n};"}}
1+
{"today":"2182","today-question-info":{"enName":"jump-game-vi","title":"跳跃游戏 VI","detail":"<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>nums</code> 和一个整数 <code>k</code> 。</p>\n\n<p>一开始你在下标 <code>0</code> 处。每一步,你最多可以往前跳 <code>k</code> 步,但你不能跳出数组的边界。也就是说,你可以从下标 <code>i</code> 跳到 <code>[i + 1, min(n - 1, i + k)]</code> <strong>包含</strong> 两个端点的任意位置。</p>\n\n<p>你的目标是到达数组最后一个位置(下标为 <code>n - 1</code> ),你的 <strong>得分</strong> 为经过的所有数字之和。</p>\n\n<p>请你返回你能得到的 <strong>最大得分</strong> 。</p>\n\n<p> </p>\n\n<p><strong>示例 1:</strong></p>\n\n<pre>\n<b>输入:</b>nums = [<strong>1</strong>,<strong>-1</strong>,-2,<strong>4</strong>,-7,<strong>3</strong>], k = 2\n<b>输出:</b>7\n<b>解释:</b>你可以选择子序列 [1,-1,4,3] (上面加粗的数字),和为 7 。\n</pre>\n\n<p><strong>示例 2:</strong></p>\n\n<pre>\n<strong>输入:</strong>nums = [<strong>10</strong>,-5,-2,<strong>4</strong>,0,<strong>3</strong>], k = 3\n<b>输出:</b>17\n<b>解释:</b>你可以选择子序列 [10,4,3] (上面加粗数字),和为 17 。\n</pre>\n\n<p><strong>示例 3:</strong></p>\n\n<pre>\n<b>输入:</b>nums = [1,-5,-20,4,-1,3,-6,-3], k = 2\n<b>输出:</b>0\n</pre>\n\n<p> </p>\n\n<p><strong>提示:</strong></p>\n\n<ul>\n\t<li> <code>1 <= nums.length, k <= 10<sup>5</sup></code></li>\n\t<li><code>-10<sup>4</sup> <= nums[i] <= 10<sup>4</sup></code></li>\n</ul>\n","id":"1696","jsCode":"/**\n * @param {number[]} nums\n * @param {number} k\n * @return {number}\n */\nvar maxResult = function(nums, k) {\n\n};","date":"2024-02-05"},"today-tag":"82","random-id":1314,"random-question-info":{"enName":"multiply-strings","title":"字符串相乘","detail":"<p>给定两个以字符串形式表示的非负整数&nbsp;<code>num1</code>&nbsp;和&nbsp;<code>num2</code>,返回&nbsp;<code>num1</code>&nbsp;和&nbsp;<code>num2</code>&nbsp;的乘积,它们的乘积也表示为字符串形式。</p>\n\n<p><strong>注意:</strong>不能使用任何内置的 BigInteger 库或直接将输入转换为整数。</p>\n\n<p>&nbsp;</p>\n\n<p><strong>示例 1:</strong></p>\n\n<pre>\n<strong>输入:</strong> num1 = \"2\", num2 = \"3\"\n<strong>输出:</strong> \"6\"</pre>\n\n<p><strong>示例&nbsp;2:</strong></p>\n\n<pre>\n<strong>输入:</strong> num1 = \"123\", num2 = \"456\"\n<strong>输出:</strong> \"56088\"</pre>\n\n<p>&nbsp;</p>\n\n<p><strong>提示:</strong></p>\n\n<ul>\n\t<li><code>1 &lt;= num1.length, num2.length &lt;= 200</code></li>\n\t<li><code>num1</code>&nbsp;和 <code>num2</code>&nbsp;只能由数字组成。</li>\n\t<li><code>num1</code>&nbsp;和 <code>num2</code>&nbsp;都不包含任何前导零,除了数字0本身。</li>\n</ul>\n","id":"43","jsCode":"/**\n * @param {string} num1\n * @param {string} num2\n * @return {string}\n */\nvar multiply = function(num1, num2) {\n\n};"},"specified-question-info":{"enName":"reverse-nodes-in-k-group","title":"K 个一组翻转链表","detail":"<p>给你链表的头节点 <code>head</code> ,每&nbsp;<code>k</code><em>&nbsp;</em>个节点一组进行翻转,请你返回修改后的链表。</p>\n\n<p><code>k</code> 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是&nbsp;<code>k</code><em>&nbsp;</em>的整数倍,那么请将最后剩余的节点保持原有顺序。</p>\n\n<p>你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。</p>\n\n<p>&nbsp;</p>\n\n<p><strong>示例 1:</strong></p>\n<img alt=\"\" src=\"https://assets.leetcode.com/uploads/2020/10/03/reverse_ex1.jpg\" style=\"width: 542px; height: 222px;\" />\n<pre>\n<strong>输入:</strong>head = [1,2,3,4,5], k = 2\n<strong>输出:</strong>[2,1,4,3,5]\n</pre>\n\n<p><strong>示例 2:</strong></p>\n\n<p><img alt=\"\" src=\"https://assets.leetcode.com/uploads/2020/10/03/reverse_ex2.jpg\" style=\"width: 542px; height: 222px;\" /></p>\n\n<pre>\n<strong>输入:</strong>head = [1,2,3,4,5], k = 3\n<strong>输出:</strong>[3,2,1,4,5]\n</pre>\n\n<p>&nbsp;</p>\n<strong>提示:</strong>\n\n<ul>\n\t<li>链表中的节点数目为 <code>n</code></li>\n\t<li><code>1 &lt;= k &lt;= n &lt;= 5000</code></li>\n\t<li><code>0 &lt;= Node.val &lt;= 1000</code></li>\n</ul>\n\n<p>&nbsp;</p>\n\n<p><strong>进阶:</strong>你可以设计一个只用 <code>O(1)</code> 额外内存空间的算法解决此问题吗?</p>\n\n<ul>\n</ul>\n","id":"25","jsCode":"/**\n * Definition for singly-linked list.\n * function ListNode(val, next) {\n * this.val = (val===undefined ? 0 : val)\n * this.next = (next===undefined ? null : next)\n * }\n */\n/**\n * @param {ListNode} head\n * @param {number} k\n * @return {ListNode}\n */\nvar reverseKGroup = function(head, k) {\n\n};"}}

common/utils/getTestCase.js

+21-10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
const { getDataStructure } = require('./parseStructure');
1+
const {getDataStructure} = require('./parseStructure');
2+
const {removeDomTags} = require("./removeDomTags");
23

34
/**
45
* test case 需要从两个地方拿到内容
@@ -8,22 +9,32 @@ const { getDataStructure } = require('./parseStructure');
89
* @returns {string}
910
*/
1011
function getTestCase(question) {
11-
const detail = question.detail.replaceAll('`', '');
12-
const cases = detail.match(/(<[a-zA-Z]+>)?[|:](<\/[a-zA-Z]+>)?.+\n/g)
13-
?.map((str) => `[${str?.replace(/(<[a-zA-Z]+>)?[|:]/gm, '')?.replace(/(<\/[a-zA-Z]+>)?/, '')?.replace('\n', '')}]`);
14-
const expires = detail.match(/(<[a-zA-Z]+>)?[|:](<\/[a-zA-Z]+>)?.+\n/g)
15-
?.map((str) => str?.replace(/(<[a-zA-Z]+>)?[|:](<\/[a-zA-Z]+>)?/gm, '')?.replace(/(<\/[a-zA-Z]+>)?/gm, '')?.replace('\n', ''));
16-
const functionName = question.jsCode?.match(/var.+=/g)?.[0]?.replace('var ', '')?.replace(' =', '');
17-
return `showLogs(
12+
// 完整的一条语句的reg
13+
const inputReg = /(<[a-zA-Z]+>)?[|:](<\/[a-zA-Z]+>)?.+\n/g;
14+
const inputStartReg = /(<[a-zA-Z]+>)?[|:]/gm;
15+
// 输出的reg
16+
const outputReg = /(<[a-zA-Z]+>)?[|:](<\/[a-zA-Z]+>)?.+\n/g;
17+
const outputStartReg = /(<[a-zA-Z]+>)?[|:]/gm;
18+
//结尾
19+
const endReg = /(<\/[a-zA-Z]+>)?/gm;
20+
21+
const detail = question.detail.replaceAll('`', '');
22+
const cases = detail.match(inputReg)
23+
?.map((str) => `[${removeDomTags(str?.replace(inputStartReg, '')?.replace(endReg, '')?.replace('\n', ''))}]`);
24+
const expires = detail.match(outputReg)
25+
?.map((str) => removeDomTags(str?.replace(outputStartReg, '')?.replace(endReg, '')?.replace('\n', '')));
26+
const functionName = question.jsCode?.match(/(var|let|const).+=/g)?.[0]?.replace(/((var|let|const)|=)\s?/gm, '').trim();
27+
return `showLogs(
1828
${functionName},
1929
{
2030
data: [${cases}],
2131
structure: ${JSON.stringify(getDataStructure(question.jsCode))},
2232
},
2333
{
2434
data: [${expires}],
25-
structrue: ${JSON.stringify(getDataStructure(question.jsCode, 'return'))}
35+
structure: ${JSON.stringify(getDataStructure(question.jsCode, 'return'))}
2636
}
2737
)`;
2838
}
29-
module.exports = { getTestCase };
39+
40+
module.exports = {getTestCase};

0 commit comments

Comments
 (0)