nikunjsoni

937

Sep 1st, 2021 (edited)
164
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Solution {
  2. public:
  3.     struct comp{
  4.         bool operator()(string &a, string &b){
  5.             int p1 = a.find(' ');
  6.             int p2 = b.find(' ');
  7.             string s1 = a.substr(p1+1);
  8.             string s2 = b.substr(p2+1);
  9.             if(s1==s2) return  a < b;
  10.             return s1 < s2;
  11.         }
  12.     };
  13.    
  14.     vector<string> reorderLogFiles(vector<string>& logs) {
  15.         vector<string> letter;
  16.         vector<string> digits;
  17.         vector<string> res;
  18.         for (int i = 0; i < logs.size(); i++){
  19.             int pos = logs[i].find(' ');
  20.             if(isdigit(logs[i][pos+1])){
  21.                 digits.push_back(logs[i]);
  22.             }
  23.             else{
  24.                 letter.push_back(logs[i]);
  25.             }
  26.         }
  27.         sort(letter.begin(), letter.end(), comp());
  28.         res.insert(res.end(), letter.begin(), letter.end());
  29.         res.insert(res.end(), digits.begin(), digits.end());
  30.         return res;
  31.     }
  32. };
  33.  
  34. -----------------------------------
  35.  
  36. bool comp(string &a, string &b){
  37.     int p1 = a.find(' ');
  38.     int p2 = b.find(' ');
  39.     string s1 = a.substr(p1+1);
  40.     string s2 = b.substr(p2+1);
  41.     if(s1==s2) return  a < b;
  42.     return s1 < s2;
  43. }
  44.  
  45. class Solution {
  46. public:
  47.     vector<string> reorderLogFiles(vector<string>& logs) {
  48.         vector<string> letter;
  49.         vector<string> digits;
  50.         vector<string> res;
  51.         for (int i = 0; i < logs.size(); i++){
  52.             int pos = logs[i].find(' ');
  53.             if(isdigit(logs[i][pos+1])){
  54.                 digits.push_back(logs[i]);
  55.             }
  56.             else{
  57.                 letter.push_back(logs[i]);
  58.             }
  59.         }
  60.         sort(letter.begin(), letter.end(), comp);
  61.         res.insert(res.end(), letter.begin(), letter.end());
  62.         res.insert(res.end(), digits.begin(), digits.end());
  63.         return res;
  64.     }
  65. };
RAW Paste Data