堆栈计数无法正常工作
本文关键字:工作 常工作 堆栈 | 更新日期: 2023-09-27 18:35:00
为什么我的代码没有按预期工作?尝试检查是否堆叠。计数>0,它无法正常工作
toShort("../../../z"( 正在返回"../z",但它应返回"../../../z">更新:
static String toShort(String path)
{
String[] elements = path.Split('/');
String result = "";
Stack<String> stack = new Stack<String>();
for (int i = 0; i < elements.Length; i++)
{
if (stack.Count>0&&elements[i].Equals(".."))
stack.Pop();
else
stack.Push(elements[i]);
}
List<String>list = new List<String>();
foreach (String str in stack)
list.Add(str);
list.Reverse();
int n = list.Count;
for (int i = 0; i < n; i++)
if (i != n - 1)
result += list[i] + "/";
else
result += list[i];
return result;
}
你的程序正在做你告诉它做的事情。堆栈工作正常。第二个..
会导致删除第一个..
。如果在调试器中单步执行程序,则会注意到这一点。