class Solution {
public String[] reorderLogFiles(String[] logs) {
if(logs == null || logs.length == 0) return logs;
boolean[] isLetterLog = new boolean[logs.length];
int letterLogCount = 0;
int count = 0;
for(String log: logs) {
if(!Character.isDigit(log.charAt(log.length()-1))){
isLetterLog[count] = true;
letterLogCount ++;
}
count ++;
}
String[] results = new String[logs.length];
for(int i=0, j=0, k=letterLogCount; i< logs.length;i++){
if(isLetterLog[i]) {
results[j] = logs[i];
j++;
}
else{
results[k] = logs[i];
k++;
}
}
Arrays.sort(results, 0, letterLogCount, new Comparator<String>(){
public int compare(String s1, String s2) {
int firstSpace1 = s1.indexOf(" ");
String identifier1 = s1.substring(0, firstSpace1);
String content1 = s1.substring(firstSpace1+1);
int firstSpace2 = s2.indexOf(" ");
String identifier2 = s2.substring(0, firstSpace2);
String content2 = s2.substring(firstSpace2+1);
return content1.equals(content2) ? identifier1.compareTo(identifier2) : content1.compareTo(content2);
}
});
return results;
}
}