Матч 40, Секретарь (Secretary)

 

Имеется массив строк files, содержащий имена людей. Имена были выведены принтером в обратном порядке (вместо слова EDWARDпечаталось DRAWDE). Отпечатанные слова секретарша отсортировала в лексикографическом порядке. Вернуть имя из массива files, которое будет стоять первым в отсортированном списке секретарши.

 

Класс: Secretary

Метод: string wrongOrdering(vector<string> files)

Ограничения: files содержит от 1 до 50 строк, каждая из которых содержит от 1 до 50 символов ‘A’ – ‘Z’.

 

Вход. Массив строк files, содержащий имена людей.

 

Выход. Имя из массива files, которое будет стоять первым в отсортированном списке секретарши.

 

Пример входа

files

{"JAMES","PETER","ADAM","JOHN","DAVE","EDWARD"}

{"ALGORITHM","DESIGN","DEVELOPMENT","TCHS","STUDIO","MARATHON"}

{"AAAAA","AA","AAA"}

 

Пример выхода

"EDWARD"

"ALGORITHM"

"AA"

 

 

РЕШЕНИЕ

сортировка строк

 

Сортируем массив строк files, используя функцию сортировки f: обращаем сравниваемые строки и сравниваем их лексикографически. После чего возвращаем первое слово.

 

ПРОГРАММА

 

#include <cstdio>

#include <string>

#include <vector>

#include <algorithm>

using namespace std;

 

int f(string a, string b)

{

  reverse(a.begin(),a.end());

  reverse(b.begin(),b.end());

  return a < b;

}

 

class Secretary

{

public:

  string wrongOrdering(vector<string> files)

  {

    sort(files.begin(),files.end(),f);

    return files[0];

  }

};