Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

leetcode 本地化题库,有本地刷题/测试/调试/书签/题解记录等功能,代码在线执行https://runcode.6cm.co/

License

NotificationsYou must be signed in to change notification settings

gladmo/leetcode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

leetcode 本地化题库,有本地刷题/测试/调试/书签/题解记录等功能

在线执行 golang 代码跑算法,可以使用Golang 在线代码执行:https://runcode.6cm.co/go

本项目只包含问题及原始网站提供的代码片断,想看题解及代码实现的可查看源站题解或者:LeetCode-Go

本地刷题及单步调试算法、保留所有题解及查看解答变迁是本仓库存在的意义。

使用示例:usage

Intro

本仓库是leetcode-cn.com 本地化题库,包含本地化测试用例、常用 go 工具包的一个仓库。

本仓库主要包含三个功能:

  • leetcode 在线题目本地化 (questions 目录)
  • 本地化测试用例,本地调试 (cmd 目录)
  • 常用刷题 go 语言工具包 (utils 目录)
  • 保存题解,随时查看历史 (./leetcode solution 命令)

须知

  • 抱着怀疑的心态使用测试用例(当然每个测试用例都经过精心测试,但难免会有意外)
  • 每次执行测试时会先运行一次,检测是否会超时,超时默认为2s
  • 当前所有测试用例共用一个运行环境,需考虑算法是否会对此有特殊要求(也就是说,你写的算法块最好是无状态的,注意:全局变量会在每个测试用例间共享)
  • 开始你的算法之旅
  • 所有包含路径的部分在 goland/idea 编辑器控制台可以直接点击跳转到代码,省去找算法目录的过程

安装

git --depth 1 clone https://github.com/gladmo/leetcode.gitcd leetcodego build -o leetcode cmd/leetcode.go./leetcode# orgo install cmd/leetcode.goleetcode

主要功能

本地化测试

./leetcodetest 133# or./leetcodetest clone-graph# or./leetcodetest https://leetcode-cn.com/problems/clone-graph/

可以得到测试结果:

+------+--------------------------------+----------+----------+| 序号|            用例名称| 测试状态| 失败原因|+------+--------------------------------+----------+----------+| 1/4| test-nil| PASS||| 2/4| test-empty| PASS||| 3/4| test-[[2],[1]]| PASS||| 4/4| test-[[2,4],[1,3],[2,4],[1,3]]| PASS||+------+--------------------------------+----------+----------+

本地化 leetcode-cn.com 题目

./leetcode get 133# or./leetcode get clone-graph# or./leetcode get https://leetcode-cn.com/problems/clone-graph/

得到输出:

+----------+------------------------------+| 标题| Clone Graph|+----------+------------------------------+| 问题ID|                          133|+----------+------------------------------+| 中文标题| 克隆图|+----------+------------------------------+| 标签| 深度优先搜索,广度优先搜索,图|+----------+------------------------------+| 难度| medium|+----------+------------------------------+

所有你使用./leetcode test ... 测试过的代码,都会保存到当前目录solutions.db

可以使用./leetcode solution list 列出所有解答:

./leetcode solution list

得到类似如下输出:

+--------+----------------------+------+--------+----------+------------+------------+| 问题ID |         标题         | 难度 | 版本数 | 测试次数 |  首次提交  |  最后提交  |+--------+----------------------+------+--------+----------+------------+------------+|   1786 | 统计一致字符串的数目 | easy |      1 |        0 | 2020-12-13 | 2020-12-13 |+--------+----------------------+------+--------+----------+------------+------------+|    283 | 移动零               | easy |      1 |        0 | 2020-12-13 | 2020-12-13 |+--------+----------------------+------+--------+----------+------------+------------+

获取某一题下所有测试过的题解:

./leetcode solution get 283

得到类似以下输出:

+------+--------+----------+------+--------+------------+------+| 序号|  语言| 测试次数| 评价|  消耗|  创建时间| 备注|+------+--------+----------+------+--------+------------+------+|    1| golang|        0| 6/6| 1.387s| 2020-12-13||+------+--------+----------+------+--------+------------+------+

查看提交的题解代码部分:

./leetcode solution code 283 1
func moveZeroes(nums []int) {        var j intfor i := 0; i< len(nums); i++ {if nums[i]!= 0 {                        nums[j], nums[i] = nums[i], nums[j]                        j++                }        }}

查看题解详情:

./leetcode solution describe 283 1
+-------+---------------------------------------------------------------+| 编号:|                                                           283|+-------+---------------------------------------------------------------+| 题目:| 移动零|+-------+---------------------------------------------------------------+| 难度:| easy|+-------+---------------------------------------------------------------+| 语言:| golang|+-------+---------------------------------------------------------------+| 路径:| questions/serial/easy/283/golang/solution/move-zeroes.go:11:1|+-------+---------------------------------------------------------------+| 时间:| 2020-12-13|+-------+---------------------------------------------------------------+代码:func moveZeroes(nums []int) {        var j intfor i := 0; i< len(nums); i++ {if nums[i]!= 0 {                        nums[j], nums[i] = nums[i], nums[j]                        j++                }        }}

将代码检出到问题中:

./leetcode solution checkout 283 1题目: 移动零, 编号: 283, 代码检出成功。路径: questions/serial/easy/283/golang/solution/move-zeroes.go:11:1

代码检出后,将会使用历史的题解覆盖当前题目代码,方便回顾之前写算法的过程。

Q & A

Q: 为何会有这个仓库?A: 刚开始刷题后发觉大部分时间花在了构造测试用例上,我觉得这个是可以大家共享的。而在本地可以跑测试,对于解错题时的逐行调试代码尤为重要,对于加深对算法的理解会有帮助。Q: 为何现在只有 golang 的测试用例?A: 本仓库是为了我辅助刷题使用,欢迎其它语言刷题者提 PR 丰富仓库。Q: 为何仓库的题目不全?A: 虽然可以使用 ./leetcode get ... 将题目全本地化,虽然工具已经很完善可以生成大部分的 golang 代码,但是所有测试用例还需要手动来创建。我在努力刷题中,每刷过的题目都会将测试用例一并更新到仓库中。欢迎大家一起贡献你的测试用例。Q: 我是刷题者,这个仓库对我有何作用?A: 首先,如果你使用 golang 刷题时,按题号检索时, questions/serial 目录包含了 简单/中等/困难 三个层次的问题,你可以选择题号做题。按标签刷题的朋友可以在 questions/tags 找到不同标签的题目,注意在测试的时候,需要使用 (leetcode test --tag [you-choose-tag] ... )需要带上 --tag  [you-choose-tag]Q: Goland 控制台输出的链接太难识别了怎么办?A: 可以到 Editor -> Color Scheme -> General -> Hyperlinks -> Reference 调整配色Q: 为何我的idea控制台中路径不能点击?A: 首次get题目时,编辑器还未加载到文件,点一下目录,再试试一次 info 命令即可Q: 我想贡献代码,我应该怎么做?A: 首先感谢你对项目的支持。1. 现有问题 markdown 或者测试用例修改已有问题文件夹下的 README.md(问题 markdown 文件) 或问题下的golang文件夹中的 main.go(测试用例),提交前使用 leetcode clear 将 solution 代码复原,!!!这个操作会将 serial 目录下的所有 solution 目录下的代码恢复到与 leetcode-cn.com 提供的代码片断一致(这么做的目录是为了给刷题者创建一个原生的刷题环境,而且大家写的代码在 solution 也会反复覆盖)2. 与 leetcode-cn.com 交互代码部分可在 leet 目录修改3. leetcode 命令行问题可在 cmd/command 目录修改4. 添加刷题工具库的可以添加到 utils 目录下,添加前需要先确认功能还不存在。再次感谢!

命令功能简介:

leetcode cliUsage:  leetcode [command]Available Commands:  backup      backup youcomplete questions to solutions  base        clear& replace all question use you specified (backup all unbanked)  clearset questions to default (backup all unbanked)  completion  Generate completion script  get         get leetcode question from leetcode-cn.comhelp        Help about anycommand  info        print leetcode question info  solution    题解管理test        测试本地代码,保存题解  version     Print the version number of leetcode cliFlags:  -h, --helphelpfor leetcodeUse"leetcode [command] --help"for more information about a command.

本仓库是作者刷题目过程中不断完善的一个仓库,后续投入开发的时间将会减少,一起刷题目的小伙伴可以一起来贡献你的测试用例。

如果你是一名刷题者

你只需要使用:

leetcode test ... 解答完问题,跑测试用例

+------+--------------------------------+----------+----------+| 序号|            用例名称| 测试状态| 失败原因|+------+--------------------------------+----------+----------+| 1/4| test-nil| PASS||| 2/4| test-empty| PASS||| 3/4| test-[[2],[1]]| PASS||| 4/4| test-[[2,4],[1,3],[2,4],[1,3]]| PASS||+------+--------------------------------+----------+----------+

leetcode info ... 查看问题基础信息

+----------+------------------------------+| 标题| Clone Graph|+----------+------------------------------+| 问题ID|                          133|+----------+------------------------------+| 中文标题| 克隆图|+----------+------------------------------+| 标签| 深度优先搜索,广度优先搜索,图|+----------+-----------------------------+| 难度| medium|+----------+------------------------------+

如果你是一名贡献者

首先感谢你对项目的支持。1. 现有问题 markdown 或者测试用例修改已有问题文件夹下的 README.md(问题 markdown 文件) 或问题下的golang文件夹中的 main.go(测试用例),提交前使用 leetcode clear 将 solution 代码复原,!!!这个操作会将 serial 目录下的所有 solution 目录下的代码恢复到与 leetcode-cn.com 提供的代码片断一致(这么做的目录是为了给刷题者创建一个原生的刷题环境,而且大家写的代码在 solution 也会反复覆盖)2. 与 leetcode-cn.com 交互代码部分可在 leet 目录修改3. leetcode 命令行问题可在 cmd/command 目录修改4. 添加刷题工具库的可以添加到 utils 目录下,添加前需要先确认功能还不存在。再次感谢!

Changelog

2020-12-15

  • questions 目录下的两个json文件改用 bolt 存储

2020-12-14

  • leetcode mark 命令,可以给问题或者题解设置书签

2020-12-13

  • leetcode solution 命令,使用测试时保存的所有题解都可以用此命令及其子命令查看
  • leetcode backup 命令

Todo

  • leetcode search 命令
  • leetcode login
  • leetcode publish

About

leetcode 本地化题库,有本地刷题/测试/调试/书签/题解记录等功能,代码在线执行https://runcode.6cm.co/

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp