-4

コードが期待どおりに動作しないのはなぜですか? stack.Count>0 かどうかを確認しようとしていますが、正しく機能していません

toShort("../../../z") は "../z" を返していますが、"../../../z" を返す必要があります UPDATE:

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;
    }
4

1 に答える 1