阅读程序(第二题):括号匹配与最大栈深

qa671197 组合题 共 个子题

阅读下面程序,完成后面的判断题和单选题。判断题正确填 A,错误填 B。

#include <cstdio>
#include <cstring>

char s[100005];
char st[100005];

int main() {
    scanf("%s", s);
    int n = strlen(s);
    int top = 0, pairs = 0, dep = 0, mx = 0;
    for (int i = 0; i < n; ++i) {
        if (s[i] == '(') {
            st[++top] = '(';
            dep = top;
            if (dep > mx) mx = dep;
        } else if (s[i] == ')') {
            if (top > 0) {
                --top;
                ++pairs;
            }
        }
    }
    printf("%d %d\n", pairs, mx);
    return 0;
}

子题 判断题

判断题:当输入为 "((()))" 时,输出的第二个数为 3。( )

A

正确

B

错误

子题 判断题

判断题:将第 17 行的 `if (top > 0) {` 改为 `if (top >= 0) {` 后,当输入为 "())(" 时,输出的第一个数为 2。( )

A

正确

B

错误

子题 判断题

判断题:当输入为 "(()" 时,输出的两个数之和为 4。( )

A

正确

B

错误

子题 判断题

判断题:当输入为 ")(" 时,输出的两个数都是 0。( )

A

正确

B

错误

子题 单选题

当输入为 "()(())" 时,输出为( )。

A

3 3

B

2 3

C

2 2

D

3 2

子题 单选题

将第 14 行的 `dep = top;` 改为 `dep = top + 1;` 后,当输入为 "((()))" 时,输出的第二个数为( )。

A

2

B

3

C

4

D

6

子题 单选题

该程序的时间复杂度为( )。

A

O(n)

B

O(n log n)

C

O(n²)

D

O(2ⁿ)

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧