测试用例:各种文件:错误的答案

时间:2018-02-23 14:05:13

标签: php

我在Testdome上尝试了一个问题,我们必须为给定的输入实现function first(){ /*do stuff*/ return stuff; } function second(){ var result = first; } 方法

用于关联数组groupByOwners * groupByOwners函数应返回["Input.txt" => "Randy", "Code.py" => "Stan", "Output.txt" => "Randy"]

我创建的代码已成功运行,但其中一项测试失败。我无法弄明白。该网站也没有给出任何线索。

["Randy" => ["Input.txt", "Output.txt"], "Stan" => ["Code.py"]]

这是我创建的代码。样本输出是正确的。但下面的测试用例是错误的。

各种文件:错误答案此测试失败。代码有什么问题?  请看一下相同的链接 https://www.testdome.com/d/php-interview-questions/5

您可以尝试我的代码并查看结果。下面是同样的屏幕截图。

enter image description here

2 个答案:

答案 0 :(得分:1)

您的代码失败的原因,因为<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Torch</string> </resources> </manifest> 保留了元素键。因此,如果您运行以下数据

array_unique

您将获得以下数组

$files = array
(
    "Input.txt" => "Randy",
    "Output.txt" => "Randy",
    "test.py" => "Stan",
);

注意“Stan”值的索引是如何仍为2.您可以运行此示例并亲眼看看它对“Stan”不起作用。 要解决此问题,您需要重置阵列中的编号。最简单的方法是在array(2) { [0]=> string(5) "Randy" [2]=> string(4) "Stan" } 数组上调用array_values函数,如此

$keys

希望我足够清楚,这有帮助。

答案 1 :(得分:0)

我的解决方案:

class FileOwners
{
    public static function groupByOwners($files)
    {
        $res = [];
        foreach ($files as $key => $value) {
            $res[$value][] = $key;
        }
        return $res;
    }
}

$files = array
(
    "Input.txt" => "Randy",
    "Code.py" => "Stan",
    "Output.txt" => "Randy"
);
var_dump(FileOwners::groupByOwners($files));