SRM 227 Div1 Easy ClientsList

問題

"First Last"と"Last, First"の2通りの名前の形式がある,全て"First Last"にし,Last, Firstの順でソートしろ.

解答

pairにLast, Firstの順に格納しsortしてあげるとLast, Firstの順にソートされる.後は先頭から取り出し,決められたフォーマットで出力するだけ.

class ClientsList
{
public:
  vector <string> dataCleanup(vector <string> names)
    {
      vector<pair<string, string> > s;
      int i;
      int n= names.size();
      for(i = 0; i < n; i++){
        size_t x = names[i].find(",");
        string first;
        string second;
        if (x == string::npos){
          size_t y = names[i].find(" ");
          first = names[i].substr(0, y);
          second = names[i].substr(y+1);
        }else{
          size_t y = names[i].find(" ");
          second = names[i].substr(0, x);
          first = names[i].substr(y+1);
        }
        s.push_back(make_pair(second, first));
      }
      sort(s.begin(), s.end());
      vector<string> res;
      for(i = 0; i < n; i++){
        res.push_back(s[i].second + " " + s[i].first);
      }
      return res;
    }
};