HH_Knight 2020-03-29 19:37 采纳率: 0%
浏览 80

新手求帮助,感谢各位大佬。

给出一串包含 ( 、 ) 、[ 和 ] 的字符串,字符串在以下三种情况下为合法的:

1)字符串为空;

2)如果A和B都是合法的,那么AB也是合法的;

3)如果A是合法的,那么(A)和[A]也是合法的。

试判断输入的字符串是否合法。

输入格式:
输入包括一串由若干个 ( 、 ) 、 [ 或 ] 组成的字符串,字符串长度不超过100。

输出格式:
如果该字符串合法,输出“Yes”;否则输出“No”。

输入样例:
([])

输出样例:
Yes

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-03-29 20:37
    关注

    这个问题不是回答过了么?

    https://ask.csdn.net/questions/1061034

    #include <stdio.h>
    #include <string.h>
    
    char conv(char c)
    {
        if (c == ')') return '(';
        if (c == '}') return '{';
        if (c == ']') return '[';
        return 0;
    }
    
    int main()
    {
        char arr[100];
        int n = 0;
        int result = 1;
        char s[100];
        scanf("%s", s);
        for (int i = 0; i < strlen(s); i++)
        {
            if (s[i] == '(' || s[i] == '[' || s[i] == '{')
                arr[n++] = s[i];
            else if (s[i] == ')' || s[i] == ']' || s[i] == '}')
            {
                if (arr[n - 1] != conv(s[i])) { result = 0; break; }
                n--;
            }
        }
        if (n != 0) result = 0;
        if (result) printf("YES"); else printf("NO");
        return 0;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证