Skip to content

Smileslime47/LeetCodeInputHelper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LeetCodeInputHelper

License: MIT

概述

将力扣[...]格式的输入样例直接转换成可用的数据结构!

样例:

@LeetCodeData(value = "[1,null,0,0,1]", index = 0)
public class Main{
    public static void main(String[] args){
        LeetCodeContext lcc=new LeetCodeContext(Main.class);
        TreeNode root=lcc.getBinaryTree(0);
    }
}

使用方法

在测试类前加上@LeetCodeData注解,该注解包含1个参数

  • value:数据内容,支持[...]的字符串格式,此外最外层的中括号也可以去除,如@LeetCodeData(value = "1,2,3")

此外你也可以用@LeetCodeExample样例输入一整串样例,如

@LeetCodeExample("s=[7,8,9],b=\"abcdefg\",c=[['A','B','C'],['B','C'],['C']],d=[1,null,0,0,1]")

在main函数中创建LeetCodeContext类,并在构造参数中输入所在类的Class对象,如:

LeetCodeContext lcc=new LeetCodeContext(Main.class);

LeetCodeContext支持的方法:

  • int[] getIntArray(int index):按照一维int数组解析指定index的注解
  • List<Integer> getIntList(int index):按照一维int数组解析指定index的注解,并返回一个对应的ArrayList
  • int[][] getIntArrays(int index):按照二维int数组解析指定index的注解
  • char[] getCharArray(int index):按照一维char数组解析指定index的注解
  • char[][] getCharArrays(int index):按照二维char数组解析指定index的注解
  • String getString(int index):按照字符串解析指定index的注解
  • String[] getStringArray(int index):按照字符串数组解析指定index的注解
  • TreeNode getBinaryTree(int index):按照LeetCode常用的TreeNode类解析指定index的注解,并返回一个二叉树的根节点
  • ListNode getListNode(int index):按照LeetCode常用的ListNode类解析指定index的注解,并返回一个链表的根节点

对于所有get方法都有解析Example的版本:

  • T getT(int expIndex,int index):解析指定Example注解的第i项数据,同样从0开始
@LeetCodeExample("s=[7,8,9],b=\"abcdefg\",c=[['A','B','C'],['B','C'],['C']],d=[1,null,0,0,1]")
public class Main{
    public static void main(String[] args){
        LeetCodeContext lcc=new LeetCodeContext(Main.class);
        TreeNode root=lcc.getBinaryTree(0,3);
    }
}

当同时包含多个Data注解或者Example注解时,index按照代码顺序分配,从0开始,且二者彼此独立如:

@LeetCodeData("[1,null,0,0,1]")//index 0
@LeetCodeData("[1,2,3]")//index 1
...
@LeetCodeExample("s=[1,2,3],b=[4,5,6]")//expIndex 0
@LeetCodeExample("s=[7,8,9],b=\"abcdefg\",c=[['A','B','C'],['B','C'],['C']]")//expIndex 1

支持格式

一维数组

@LeetCodeData("[1,2,3]")
@LeetCodeData("['A','B','C','D']")

二维数组

@LeetCodeData("[[1,2,3],[1,2],[3]]")
@LeetCodeData("[['A','B','C'],['B','C'],['C']]")

字符串

@LeetCodeData("abcdefg")

字符串数组

//单行文本
@LeetCodeData("[\"tars\",\"rats\",\"arts\",\"star\"]")
//文本块
@LeetCodeData(value = """
        ["tars","rats","arts","star"]""")

LeetCode提供的二叉树和链表等

@LeetCodeData("[1,null,0,0,1]")

LeetCode提供的完整样例

@LeetCodeExample("s=[7,8,9],b=\"abcdefg\",c=[['A','B','C'],['B','C'],['C']],d=[1,null,0,0,1]")

About

一个将LeetCode输入样例转换成相应数据结构的工具

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages