项目地址
概述
将力扣[…]格式的输入样例直接转换成可用的数据结构!
样例:
1 2 3 4 5 6 7
| @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样例输入一整串样例,如
1
| @LeetCodeExample("s=[7,8,9],b=\"abcdefg\",c=[['A','B','C'],['B','C'],['C']],d=[1,null,0,0,1]")
|
在main函数中创建LeetCodeContext
类,并在构造参数中输入所在类的Class对象,如:
1
| 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开始
1 2 3 4 5 6 7
| @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开始,且二者彼此独立如:
1 2 3 4 5
| @LeetCodeData("[1,null,0,0,1]") @LeetCodeData("[1,2,3]") ... @LeetCodeExample("s=[1,2,3],b=[4,5,6]") @LeetCodeExample("s=[7,8,9],b=\"abcdefg\",c=[['A','B','C'],['B','C'],['C']]")
|
支持格式
一维数组
1 2
| @LeetCodeData("[1,2,3]") @LeetCodeData("['A','B','C','D']")
|
二维数组
1 2
| @LeetCodeData("[[1,2,3],[1,2],[3]]") @LeetCodeData("[['A','B','C'],['B','C'],['C']]")
|
字符串
1
| @LeetCodeData("abcdefg")
|
字符串数组
1
| @LeetCodeData("[\"tars\",\"rats\",\"arts\",\"star\"]")
|
LeetCode提供的二叉树和链表等
1
| @LeetCodeData("[1,null,0,0,1]")
|
LeetCode提供的完整样例
1
| @LeetCodeExample("s=[7,8,9],b=\"abcdefg\",c=[['A','B','C'],['B','C'],['C']],d=[1,null,0,0,1]")
|