在编辑器搭建简易好用的算法刷题编码环境

常用 JS 和 Java 刷题。 JS 在 LeetCode 使用比较顺畅,可完善 ACM 模式 OJ 的编码体验;而 Java 需要编写的代码较多,使用 IDEA 编辑器搭配实时模板可提示效率。对应配置已放到 Github,可下载复用。

JS 环境配置

LeetCode 中使用 js 比较顺畅,但一些 ACM 模式的 OJ 写起来就没有那么方便。可借助 VSCode 来优化答题体验,提供了输入流、读取行、优先队列等 snippets,方便使用。

https://github.com/heibaimeng/algo-playground-js

已做设置:

  • 通过 jsconfig.json 配置,代码提排除浏览器 API,避免智能提示过多产生干扰
  • 项目 eslint 自动修复,无需关注代码格式
  • 项目级 snippets 配置,安装即可使用,不需进行编辑器设置
  • 提供与 leetcode PriorityQueue 一致 API 的实现,可直接代码引入

预置了一些 snippets ,以 a 开头,方便调用:

  • abuf 输入流基础框架模板
  • areadline 读取一行并拆分
  • aarr 创建指定长度的数组
  • aswap 交换数组元素
  • aPriorityQueue 定义优先队列类,与 leetcode 的 API 一致
  • 可依据需要自行增加 snippets

Java 环境配置

在 IDEA 编辑器搭建 Java 算法题编码环境,提供 LeetCode 和 ACM 模式的类文件与 IDEA 实时模板配置。

https://github.com/heibaimeng/algo-playground-java

文件选择:

  • LeetCode 使用 Solution 类
    • 用法:把题目代码复制覆盖 import java.util.*; 下方内容,编写代码
  • AcWing 和牛客等 acm 模式的平台,使用 Main 类
    • 用法:把代码重置,直接编写代码

编辑器按需配置实时模板。因 IDEA 实时模板不支持配置到项目目录中,且内容不多,记录在 README.md 文件里。

选中对应代码,菜单 菜单 Code -> Save as Live Template ,设置对应的适用于类型。