@@ -24,6 +24,7 @@ public static <T> void printArray_generic_type(T[] nums) {
2424public static void main (String ...strings ) {
2525Integer []nums =new Integer []{1 ,2 ,3 ,4 ,5 };
2626printArray_generic_type (nums );
27+ CommonUtils .printListList (convertLeetCodeStringArrayInputIntoJavaArray ("[\" A\" ,\" B\" ],[\" C\" ],[\" B\" ,\" C\" ],[\" D\" ]" ));
2728 }
2829
2930public static void printArray (boolean []booleans ) {
@@ -327,4 +328,34 @@ public static int[][] convertLeetCodeIrregularRectangleArrayInputIntoJavaArray(S
327328 }
328329return output ;
329330 }
331+
332+ public static List <List <String >>convertLeetCodeStringArrayInputIntoJavaArray (String input ) {
333+ /**
334+ * LeetCode 2-d array input usually comes like this: each row could have different length
335+ * [["A","B"],["C"],["B","C"],["D"]]
336+ * The expected input for this method is: "[\"A\",\"B\"],[\"C\"],[\"B\",\"C\"],[\"D\"]"
337+ * just copy the LeetCode input: ["A","B"],["C"],["B","C"],["D"] into double quotes in Java,
338+ * it'll auto escape the double quotes.
339+ * i.e. strip off the beginning and ending square brackets, that's it.
340+ * The output of this method will be a standard Java 2-d array.
341+ * */
342+ String []arrays =input .split ("],\\ [" );
343+ List <List <String >>result =new ArrayList <>();
344+ for (int i =0 ;i <arrays .length ;i ++) {
345+ List <String >level =new ArrayList <>();
346+ String []strings ;
347+ if (i ==0 ) {
348+ strings =arrays [i ].substring (1 ).split ("," );
349+ }else if (i ==arrays .length -1 ) {
350+ strings =arrays [i ].substring (0 ,arrays [i ].length () -1 ).split ("," );
351+ }else {
352+ strings =arrays [i ].split ("," );
353+ }
354+ for (int j =0 ;j <strings .length ;j ++) {
355+ level .add (strings [j ]);
356+ }
357+ result .add (level );
358+ }
359+ return result ;
360+ }
330361}