/leetcode-extension

Solved LeetCode problem in VS Code added some new features

Primary LanguageTypeScriptMIT LicenseMIT

概要设计

关于本项目

快速开始

quickstart

tag 分类

tag

查询功能

search

近期竞赛回顾

search

  • 近期比赛数据和比赛的题目通过中文官网在线获取
  • 国际站并无对应api,因此即使在国际站点下也是通过中文站点获取的数据,同时由于没有登录参数,可能存在无法获取数据的情况。

区块测试用例

例子(cpp 文件为例)

// @lcpr case=start
// "PAYPALISHIRINGGGG"\n3\n
// @lcpr case=end

说明

  • 以 @lcpr case=start 开头
  • 第二行存放原本手动填写测试用例
  • 以 @lcpr case=end 结尾

一键提交的用例去重

  • 简单的比较这些用例字符串是否相同

状态栏增加简易计时器

  • 查看一个题目时会开始计时,提交一个题目通过后会停止计时

国际站 cRUL 登录

  • 使用谷歌浏览器或者其他浏览器
  • F12 查看登录国际站后的请求
  • 选中复制最后一个 graphql 请求
  • 右键->复制-> 以 cURL(bash)格式复制
  • 插件登录选择 使用 cURL Cookie 方式登录,输入账号,输入复制来的 cURL(bash)格式请求数据

区域调试参数的一些说明

如果有些题目无法 debug,请尝试配置 diy 参数区

  1. 例子 cpp 2544 题为例
    // @lcpr-div-debug-arg-start
    // funName= alternateDigitSum
    // paramTypes= ["number"]
    // @lcpr-div-debug-arg-end
    
  2. diy 参数说明
  • funName:函数名,既本次解决方法的函数名
  • paramTypes:函数的输入参数,是一个字符串数组类型
    • 可填入内容为以下字符串
      • "number"
        • 类型说明:数字
      • "number[]"
        • 类型说明:数字数组
      • "number[][]"
        • 类型说明:数字二维数组
      • "string"
        • 类型说明:字符串
      • "string[]"
        • 类型说明:字符串数组
      • "string[][]"
        • 类型说明:字符串二维数组
      • "ListNode"
        • 类型说明:链表
      • "ListNode[]"
        • 类型说明:链表数组
      • "character"
        • 类型说明:字节
      • "character[]"
        • 类型说明:字节数组
      • "character[][]"
        • 类型说明:字节二维数组
      • "NestedInteger[]"
        • 类型说明:数组
      • "MountainArray"
        • 类型说明:数组
      • "TreeNode"
        • 类型说明:树节点

搬砖功能的说明

功能设想

  • 重复做 x 天之前的题目(正确提交后 x 天再做本题)
  • 重复练习可以提高水平?(待定验证)
  • 有什么学习方法可以与我交流,这个方法我也不知道有没有用

新增在工作目录存放数据

  • 目录说明

    workspace/ 工作目录

    .lcpr_data/ 存数据

    bricks.json

    remark 备注数据

    qid 备注 remark 数据

    group.json

bricks.json 存放格式

{
   version: 1,
   all_bricks: {
     [qid]: {
        submit_time: [], // 上次提交的时间
        type: 1, // 类型
     },
   },
 };

group.json 存放格式

{
    "version": 1,
    "all_group": [
        {
            "name": "www",  // 分类名称
            "time": 1669791273308, // 分类编号
            "qid_list": [   // 该分类的题目qid
                "1000229",
                "1000231"
            ]
        }
    ]
}

运行条件

  • VS Code 1.57.0+
  • Node.js 10+

    注意:请确保NodePATH环境变量中。您也可以通过设定 leetcode.nodePath 选项来指定 Node.js 可执行文件的路径。

插件配置项

配置项名称显示红色为与官方配置有不同的地方 描述 默认值
leetcode-problem-rating.hideSolved 指定是否要隐藏已解决的问题 false
leetcode-problem-rating.bricksReviewDay 设置x天后复习 [1,4,7,14,28,60 ]
leetcode-problem-rating.showLocked` 指定是否显示付费题目,只有付费账户才可以打开付费题目 false
leetcode-problem-rating.defaultLanguage 指定答题时使用的默认语言,可选语言有:bash, c, cpp, csharp, golang, java, javascript, kotlin, mysql, php, python,python3,ruby, rust, scala, swift, typescript N/A
leetcode-problem-rating.useWsl 指定是否启用 WSL false
leetcode-problem-rating.endpoint 指定使用的终端,可用终端有:leetcode, leetcode-cn leetcode.cn
leetcode-problem-rating.workspaceFolder 指定保存文件的工作区目录例如/home/${USERNAME}/leetcode, 现在会尝试从系统环境变量读取 USERNAME 对应的值, 例如环境变量中 USERNAME 是 ccagml,那么就会是/home/ccagml/leetcode 录 ""
leetcode-problem-rating.workspaceFolderList 多个等待选择的工作区目录,如果 workspaceFolder 目录不存在,尝试从 workspaceFolderList 选取可用目录 ["path1", "path2"]
leetcode-problem-rating.filePath 指定生成题目文件的相对文件夹路径名和文件名。点击查看更多详细用法。 额外拓展${yyyymmdd}对应年月日 20230720、${timestamp}对应时间戳格式、${cn_name}题目的中文名称
leetcode-problem-rating.enableStatusBar 指定是否在 VS Code 下方显示插件状态栏。 增加周赛分数据 true
leetcode-problem-rating.editor.shortcuts 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: submit, test, star, solution, description, case, allcase 。 ["submit, case, allcase, test, solution"]
leetcode-problem-rating.enableSideMode 指定在解决一道题时,是否将问题预览高票答案提交结果窗口集中在编辑器的第二栏。 true
leetcode-problem-rating.nodePath 指定 Node.js 可执行文件的路径。如:C:\Program Files\nodejs\node.exe node
leetcode-problem-rating.showCommentDescription 指定是否要在注释中显示题干。 false
leetcode-problem-rating.useEndpointTranslation 是否显示翻译版本内容。 true
leetcode-problem-rating.sortStrategy 排序的选项。Acceptance Rate (Ascending):通过率递增 Acceptance Rate (Descending):通过率递减 Score (Ascending):分数递增 Score (Descending):分数递减 None
leetcode-problem-rating.pickOneByRankRangeMin 随机一题的最小浮动,随机一题最低分(你的竞赛分+本配置)。 50
leetcode-problem-rating.pickOneByRankRangeMax 随机一题的最大浮动,随机一题最高分(你的竞赛分+本配置)。 150
leetcode-problem-rating.hideScore 隐藏分数相关的题目。Score:隐藏有分数的题目, NoScore:隐藏没有分数的题目, ScoreRange:隐藏分数范围外的题目 None
leetcode-problem-rating.useVscodeNode 默认情况下使用 VsCode 自带 Node 环境,不需要额外安装 Node 环境 true
leetcode-problem-rating.answerDiffColor 答案不同的地方上色 false

更新日志

请参考更新日志

鸣谢