["l5sh 6 3869 08 1295", "16o 94884717383724 9", "43 490972281212 3 51", "9 ehyjki ngcoobi mi", "2epy 85881033085988", "7z fqkbxxqfks f y dg", "9h4p 5 791738 954209", "p i hz uubk id s m l", "wd lfqgmu pvklkdp u", "m4jl 225084707500464", "6np2 bqrrqt q vtap h", "e mpgfn bfkylg zewmg", "ttzoz 035658365825 9", "k5pkn 88312912782538", "ry9 8231674347096 00", "w 831 74626 07 353 9", "bxao armngjllmvqwn q", "0uoj 9 8896814034171", "0 81650258784962331", "t3df gjjn nxbrryos b"]
class Solution {
public:
vector<string> reorderLogFiles(vector<string>& logs) {
sort(logs.begin(), logs.end(), [logs](const string &log1, const string &log2) -> bool {
int space1 = log1.find(' ');
string id1 = log1.substr(0, space1);
string after1 = log1.substr(space1+1);
int space2 = log2.find(' ');
string id2 = log2.substr(0, space2);
string after2 = log2.substr(space2+1);
if (isalpha(after1[0]) != isalpha(after2[0])) {
return isalpha(after1[0]);
}
if (isalpha(after1[0]))
return after1 == after2 ? id1 < id2 : after1 < after2;
return find(logs.begin(), logs.end(), log1) < find(logs.begin(), logs.end(), log2);
});
return logs;
}
};