因此,我卡在一个程序,我有一系列的对可能或不能够连接在一起,形成一个完整的路径通过对。我需要能够检查一对中的第二个项目是否可以匹配另一个对中的第一个项目,依此类推,直到没有剩下的对。例如,我对可能是:C# - 通过成对和匹配
(1,5)
(2,4)
(3,2)
(5,3)
(4,3)
我将需要能够以某种方式遍历对,并检查是否可以得到一个完整的路径,通过每一对,基于一对的第二个数字是否匹配下一对的第一个数字。在本例中,输出为:
(1,5),(5,3),(3,2),(2,4),(4,3)
形成完全匹配。如果比赛不能形成,我需要报告失败。输入基于文本文件。到目前为止,我已经能够使用Streamreader读取文件,并基于换行符分割对,然后迭代并根据逗号将每个对分割为它的项目。对于如何进行,我几乎一无所知,如果有人有一些想法,我会很感激。
StreamReader sr = new StreamReader("inputs.txt");
string line = null;
line = sr.ReadToEnd();
var str = line.Trim().Split('\n');
int length = str.Length;
int index=1;
while (index < length)
{
var pair = str[index].Split(',');
var item1 = pair[0];
var item2 = pair[1];
}
太好了,谢谢!看起来我可以使用它来让我的程序工作。有一件事 - 我所有的“第二”值都附加了“\ r”(由于这些对在我的输入文件的各行上),因此永远不会等于“第一”中的值,即使数字相同。在比较之前是否有办法将这些返回字符修剪掉?再次感谢。 – noclist 2013-04-06 22:30:45
另外,当我找到第一场比赛时,我想休息吗?我需要在整个系列赛中找到一条路径,而不是在一场比赛之后才是真实的。 – noclist 2013-04-06 22:42:42
@noclist - 查看'string'的'Trim'方法。 – Igor 2013-04-08 11:28:37