diff --git a/src/main/java/org/zjy/learn/code/amazon/ReorderLogFiles.java b/src/main/java/org/zjy/learn/code/amazon/ReorderLogFiles.java new file mode 100644 index 0000000..9cea684 --- /dev/null +++ b/src/main/java/org/zjy/learn/code/amazon/ReorderLogFiles.java @@ -0,0 +1,19 @@ +public class ReorderLogFiles { + public String[] reorderLogFiles(String[] logs) { + Arrays.sort(logs, (a, b) -> { + String[] split1 = a.split(" ", 2); + String[] split2 = b.split(" ", 2); + boolean isDigit1 = Character.isDigit(split1[1].charAt(0)); + boolean isDigit2 = Character.isDigit(split2[1].charAt(0)); + if(!isDigit1 && !isDigit2) { + int comp = split1[1].compareTo(split2[1]); + if(comp != 0) + return comp; + else + return split1[0].compareTo(split2[0]); + } + return isDigit1 ? (isDigit2 ? 0 : 1) : -1; + }); + return logs; + } +} \ No newline at end of file