Опыт раунда машинного кодирования Flipkart

Опубликовано: 21 Августа, 2021

Приложение для совместного использования поездок - SDE II. 2 часа (90 минут кодирования + 30 минут обзора)

Описание: Реализовать приложение для совместного использования автомобилей с ниже ожидаемыми функциями.

Функции:

  1. Приложение позволяет пользователям делиться поездками по маршруту.
  2. Пользователи могут либо предложить совместную поездку (водитель), либо использовать общую поездку (пассажир).
  3. Пользователи могут искать и выбирать одну из нескольких доступных поездок по маршруту с одним и тем же источником и пунктом назначения.

Требования:

  1. Приложение должно разрешать адаптацию пользователя.

    1. add_user (user_detail)

      1. Добавить основные сведения о пользователе

    2. add_vehicle (vehicle_detail)

      1. Добавьте данные об автомобиле (ах) пользователя

  2. Пользователь должен иметь возможность предложить совместную поездку по маршруту с подробностями.

    1. offer_ride (ride_detail)

      1. Поездка будет содержать такие детали, как транспортное средство, пункт отправления, пункт назначения, доступные места. (У поездки не будет промежуточных остановок.)

  3. Пользователи могут выбрать поездку из нескольких предлагаемых поездок, используя стратегию выбора. (Пользователь может только запросить поездку (только для 1 или 2 человек))



    1. select_ride (источник, пункт назначения, места, стратегия выбора)

      1. Предпочитаемый автомобиль (Activa / Polo / XUV)

      2. Самый свободный.

  4. Система должна иметь возможность завершить поездку. Пользователь может предложить поездку только для данного транспортного средства, если для этого транспортного средства нет активных предложенных поездок.

    1. end_ride (ride_details)

  5. Найдите общее количество поездок, предложенных / совершенных всеми пользователями.

    1. print_ride_stats ()

Бонусный вопрос:

  • Если исходная / конечная точка пользователя недоступна напрямую, но это возможно через несколько поездок, приложение должно вывести несколько поездок. (Пример: для ввода: из Бангалора в Мумбаи, выходом может быть из Бангалора в Гоа и из Гоа в Мумбаи)

Прочие примечания:

  1. Напишите класс драйвера для демонстрационных целей . Что будет выполнять все команды в одном месте в коде и тестовых примерах.
  2. Не используйте никакую базу данных или хранилище NoSQL, пока используйте структуру данных в памяти.
  3. Не создавайте пользовательский интерфейс для приложения.
  4. Пожалуйста, сделайте компиляцию, выполнение и завершение кода приоритетом.
  5. Сначала поработайте над ожидаемым результатом, а затем добавьте собственные полезные функции.

Ожидания:

  1. Убедитесь, что у вас есть работающий и демонстрируемый код.
  2. Убедитесь, что код функционально правильный.
  3. Требуется правильная абстракция, моделирование, разделение проблем.
  4. Код должен быть модульным, читаемым и тестируемым.
  5. Код должен легко соответствовать новым требованиям с минимальными изменениями.
  6. Требуется правильная обработка исключений.

Примеры тестовых случаев:

  1. На борту 5 пользователей

    1. add_user («Рохан, М, 36»); add_vehicle («Рохан, Свифт, KA-01-12345)

    2. add_user («Шашанк, М, 29»); add_vehicle («Шашанк, Балено, ТС-05-62395)

    3. add_user («Нандини, Ф, 29)

    4. add_user («Шипра, Ф, 27»); add_vehicle («Шипра», Поло, КА-05-41491); add_vehicle («Шипра, Activa KA-12-12332»)

    5. add_user («Гаурав, М, 29)

    6. add_user («Рахул, М, 35); add_vehicle («Рахул», «XUV», KA-05-1234);

  2. Предложить 4 поездки от 3 пользователей

    1. offer_ride («Рохан, происхождение = Хайдарабад, Доступные места = 1, Транспортное средство = Swift, KA-01-12345, Пункт назначения = Бангалор»)

    2. offer_ride («Шипра, Начало = Бангалор, Доступные места = 1, Транспортное средство = Activa KA-12-12332, Пункт назначения = Майсур»)

    3. offer_ride («Шипра, Начало = Бангалор, Доступные места = 2, Транспортное средство = Поло, KA-05-41491, Пункт назначения = Майсур»)

    4. offer_ride («Shashank, Origin = Hyderabad, Available Seats = 2, Vehicle = Baleno, TS-05-62395, Destination = Bangalore»)

    5. offer_ride («Рахул, происхождение = Хайдарабад, Доступные места = 5, Транспортное средство = XUV, KA-05-1234, Пункт назначения = Бангалор»)

    6. offer_ride («Рохан, происхождение = Бангалор, Доступные места = 1, Транспортное средство = Swift, KA-01-12345, Пункт назначения = Пуна»)

      • Этот вызов должен завершиться ошибкой, поскольку этот пользователь уже предложил поездку для этого автомобиля.

  3. Найдите аттракционы для 4 пользователей

    1. select_ride («Nandini, Origin = Bangalore, Destination = Mysore, Seats = 1, Most Vacant»)

      • 2 (c) - желаемый результат.

    2. select_ride («Гаурав, происхождение = Бангалор, пункт назначения = Майсур, количество мест = 1, предпочтительный автомобиль = Activa»)

      • 2 (b) - желаемый результат

    3. select_ride («Shashank, Origin = Mumbai, Destination = Bangalore, Seats = 1, Most Vacant»)

      • Поездки не найдены

    4. select_ride («Рохан, происхождение = Хайдарабад, пункт назначения = Бангалор, количество мест = 1, предпочтительный автомобиль = Балено»)

      • 2 (d) - желаемый результат

    5. select_ride («Shashank, Origin = Hyderabad, Destination = Bangalore, Seats = 1, Preferred Vehicle = Polo»)

      • Поездки не найдены

  4. Конец езды

    1. end_ride (2-а)

    2. end_ride (2-b)

    3. end_ride (2-c)

    4. end_ride (2-d)

  5. Найдите общее количество поездок по пользователю: Выполненные поездки: Поездки, которые были совершены и были отмечены как «завершенные». Предлагаемые поездки: Поездки, которые были предложены и были отмечены как «завершенные». Примечание. Даже если предложенная поездка не была совершена ни одним пользователем, она считается предложенной поездкой.

    1. print_ride_stats ()

      • Нандини: 1 взято, 0 предложено

      • Рохан: 1 взято, 1 предложено

      • Шашанк: 0 взято, 1 предложено

      • Гаурав: 1 взято, 0 предложено

      • Рахул: 0 взято, 0 предложено

      • Шипра: взято 0, предложено 2

Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию . Если вы готовы, проверьте свои навыки с помощью серий тестов TCS, Wipro, Amazon и Microsoft.