我正在尝试解决此问题https://codeforces.com/problemset/problem/5/C 我看到了某人的代码以了解应如何解决该问题。我试图理解程序的每个部分,这里是a link问题的解决方案,并且我写了这个a link部分来了解它是如何工作的。
我尝试给出输入“)()()()”,它返回“ 0 0 0”作为输出。
for (i = 0; i < n; i++) {
if (ar[i] == '(') {
posOpen[m++] = i;
printf("%d ", posOpen[i]);
}
}
我希望“)()()()”的输出为“ 1 3 5”,但实际输出为“ 0 0 0” 但是,对于“(((((”),输出为“ 0 1 2 3”。
答案 0 :(得分:1)
printf("%d ", posOpen[i]);
应该是
printf("%d ", posOpen[m-1]);