【问题标题】:TopCoder Alogirithm System Test FailureTopCoder 算法系统测试失败
【发布时间】:2017-05-11 06:38:22
【问题描述】:

我正在做一个来自 Top-Coder 的问题。问题陈述是-

有一天,Jamie 注意到许多英语单词只使用字母 A 和 B. 此类词的示例包括“AB”(腹部的缩写), “BAA”(羊发出的声音)、“AA”(一种熔岩)和“ABBA”(一种 瑞典流行音乐)。

受此观察的启发,Jamie 创建了一个简单的游戏。你是 给定两个字符串:初始和目标。游戏的目标是找到 一系列有效的移动,将初始变为目标。那里 是两种类型的有效移动:

将字母 A 添加到字符串的末尾。反转字符串,然后 将字母 B 添加到字符串的末尾。返回“可能”(引号 为了清楚起见)如果有一系列有效的移动会改变 初始进入目标。否则,返回“不可能”。

下面是我的解决方案,它通过了面板中的所有测试但在系统测试中失败。但是,我没有得到任何关于哪个测试用例失败的具体信息。请检查我的代码是否在某些情况下不起作用.

class ABBA
{
public string canObtain(string initial,string target)
{
    string s = "Impossible";

            if (initial.Length > target.Length)
                return "Impossible";

            if (initial.Equals(target))
                return "Possible";

            if (CheckFirstWay(target,initial))
            {
                s=canObtain(initial+"A",target);
            }
            if (s.Equals("Impossible") && CheckSecondWay(target,initial))
            {
                s=canObtain(ReverseStringDirect(initial) + "B",target);
            }

            return s;
}
   public static string ReverseStringDirect(string s)
        {
            char[] array = new char[s.Length];
            int forward = 0;
            for (int i = s.Length - 1; i >= 0; i--)
            {
                array[forward++] = s[i];
            }
            return new string(array);
        }

        private static bool CheckSecondWay(string final, string initial)
        {
            if (final.Contains(ReverseStringDirect(initial) + "B") || final.Contains("B"+initial))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        private static bool CheckFirstWay(string final1, string initial)
        {
            if (final1.Contains(initial + "A") || final1.Contains(ReverseStringDirect(initial+"A")))
            {
                return true;
            }
            else
            {
                return false;
            }
        } 
}

【问题讨论】:

  • 由于您的解决方案已经部分工作,这是一个 TopCoder 问题,您可能会在 Code Review 上获得更好的反馈。
  • 请检查答案..那里提供了测试用例。
  • 如果有帮助请选择答案。它可能会对未来的用户有所帮助。

标签: c# string algorithm


【解决方案1】:

您可以通过以下步骤检查哪个测试失败,

  1. 去指定的房间。
  2. 打开问题。
  3. 编译。
  4. 提交。
  5. 然后去运行系统测试。
  6. 您将在那里看到错误测试。

  1. here 中选择匹配项。
  2. 然后在如图所示的页面中,您将看到一组在比赛中名列前茅的蓝色编码员和红色编码员。
  3. 根据您的部门选择任何一名球员。 [.] --> 这个标志在名字旁边。
  4. 然后检查他们的解决方案,您将看到这些测试。

这里是test cases..检查一下。

您必须在此处键入系统测试。您可以查看下面的图片。图片来源:谷歌

【讨论】:

  • 你现在找到测试了吗?
  • 我在community.topcoder.com/… 找到了测试用例,但有什么方法可以找出我失败的测试用例吗?
  • 我注意到一个不同的地方是练习题中写着“反转字符串,然后将字母 B 添加到字符串的末尾”,而比赛的约束是“添加字母 B 到字符串的末尾,然后反转整个字符串。”
  • @SomeshDhal.: 是的,你可以..提交它并运行系统测试。它会通过在测试用例旁边显示红十字标记来告诉你哪个测试用例失败了。
  • @SomeshDhal.: 请贴出proepr代码..否则没有意义。您的代码未遵循 topcoder 中的 C# 代码提交规则。先编译。然后检查。
猜你喜欢
  • 1970-01-01
  • 2013-10-17
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-12
相关资源
最近更新 更多