C# TopCoder Alogrithm系统测试失败
我正在做一个顶级程序员的问题。问题陈述是- 一天,杰米注意到许多英语单词只使用字母A 这类词语的例子包括“AB”(腹部的缩写), “咩”(羊发出的噪音)、“AA”(一种熔岩)和“ABBA”(一种火山灰) 瑞典流行音乐) 受此启发,杰米创作了一个简单的游戏。你是 给定两个字符串:initial和target。游戏的目标是找到 将初始移动更改为目标的有效移动序列。那里 有两种类型的有效移动: 将字母A添加到字符串的末尾。将字符串倒转,然后 将字母B添加到字符串的末尾。返回“可能”(引号 为清楚起见),如果有一系列有效的移动将发生变化 开始进入目标。否则,返回“不可能” 下面是我对该问题的解决方案,它通过了面板中的所有测试,但在系统测试中失败。但是,我没有得到关于哪个测试用例失败的任何具体信息。请检查我的代码是否在某些情况下无法工作C# TopCoder Alogrithm系统测试失败,c#,string,algorithm,C#,String,Algorithm,我正在做一个顶级程序员的问题。问题陈述是- 一天,杰米注意到许多英语单词只使用字母A 这类词语的例子包括“AB”(腹部的缩写), “咩”(羊发出的噪音)、“AA”(一种熔岩)和“ABBA”(一种火山灰) 瑞典流行音乐) 受此启发,杰米创作了一个简单的游戏。你是 给定两个字符串:initial和target。游戏的目标是找到 将初始移动更改为目标的有效移动序列。那里 有两种类型的有效移动: 将字母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的问题,您可能会得到更好的反馈。请检查答案。此处提供了测试用例。如果有帮助,请选择答案。它可能会帮助未来的用户。你现在找到测试了吗?我在上找到了测试用例,但有什么方法可以帮我找出哪个测试用例失败了吗?我注意到不同的一点是,在练习题中,它写道“反转字符串,然后在字符串末尾添加字母B”,而竞赛有如下约束条件:将字母B添加到字符串末尾,然后反转整个字符串。“@SomeshDhal:是的,你可以..提交并运行系统测试。它会通过在测试用例旁边显示红色十字标记来告诉您哪个测试用例失败。@SomeshDhal:请发布proepr代码。否则它就没有意义了。您的代码未遵循topcoder中提交C#代码的规则。先编译。然后检查。