sasakocic / trip-sorter
旅行排序器
2.0.1
2021-04-20 20:28 UTC
Requires
- php: ^7.4
Requires (Dev)
- codeclimate/php-test-reporter: ^0.4.4
- pdepend/pdepend: ^2.8
- phpunit/php-code-coverage: ^9.2
- phpunit/phpunit: ^9.5
- sensiolabs/security-checker: ^6.0
- squizlabs/php_codesniffer: ^3.5
This package is not auto-updated.
Last update: 2024-09-19 05:03:23 UTC
README
任务
你有一堆代表不同交通工具的登机牌,这些交通工具将带你在途中经过多个站点从A点到B点。所有的登机牌都是乱的,你也不知道旅程从哪里开始,到哪里结束。每个登机牌都包含座位分配和交通工具的信息(如航班号、公交车号等)。编写一个API,让你能够对这个列表进行排序,并呈现完成旅程的描述。例如,API应该能够接受一个未排序的登机牌集合,该集合以你定义的格式提供,并生成此列表
- 乘坐从马德里到巴塞罗那的78A列车。坐在45B座位上。
- 从巴塞罗那乘坐机场巴士到热诺亚机场。没有座位分配。
- 从热诺亚机场,乘坐SK455航班到斯德哥尔摩。登机口45B,座位3A。行李在344号票务柜台办理托运。
- 从斯德哥尔摩,乘坐SK22航班到纽约JFK。登机口22,座位7B。行李将自动从上一程转接。
- 你已到达最终目的地。
列表应以与输入格式兼容的格式定义。API将是一个内部PHP API,因此它将仅与其他PHP应用程序的部分进行通信,而不是服务器到服务器或服务器到客户端。使用PHP文档来记录API接受的输入和返回的输出。
假设
- 由于结果只有一个列表,我假设输入只接收特定旅程的登机牌,我们只需要对它们进行排序。
- 为了涵盖所有输出变体而不引入人工智能,我将假设卡片上写着“坐在45B座位上。”或“没有座位分配。”的字样。如果有座位字段,则视为另一种情况。
安装
使用Composer安装
composer install
测试
可以从根目录运行以下命令来执行测试
composer run tests
用法
输入是以下格式的数组
$cards = [ ['from' => 'Madrid', 'to' => 'Barcelona', 'type' => 'train', 'number' => '78A', 'info' => 'Sit in the seat 45B.'], ['from' => 'Barcelona', 'to' => 'Gerona Airport', 'type' => 'airport bus', 'number' => '', 'info' => 'No seat assignment.'], ['from' => 'Gerona Airport', 'to' => 'Stockholm', 'type' => 'flight', 'number' => 'SK455', 'seat' => '3A', 'info' => 'Gate 45B, seat 3A. Baggage drop at ticket counter 344.'], ['from' => 'Stockholm', 'to' => 'New York JFK', 'type' => 'flight', 'number' => 'SK455', 'seat' => '7B', 'info' => 'Gate 22. Baggage will we automatically transferred from your last leg.'], ]; $result = TripSorter::sort($cards);
结果是字符串数组
- 乘坐从马德里到巴塞罗那的78A列车。坐在45B座位上。
- 从巴塞罗那乘坐机场巴士到热诺亚机场。没有座位分配。
- 从热诺亚机场,乘坐SK455航班到斯德哥尔摩。登机口45B,座位3A。行李在344号票务柜台办理托运。
- 从斯德哥尔摩,乘坐SK22航班到纽约JFK。登机口22,座位7B。行李将自动从上一程转接。
- 你已到达最终目的地。
贡献
有关详细信息,请参阅CONTRIBUTING
许可
有关更多信息,请参阅许可文件