括号匹配(南阳oj)

#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main()
{
    char stack[10000];
    char k[10000];
    int num = -1;
    int m = 0;
    int n = -1;
    string result[100];
    cin >> m;
    while (m)
        {
        cin>>k;
        for (int i = 0;; i++)
        {
            if (k[i] == '\0')
            {
                result[++n] = "Yes";
                break;
            }
            if (i == 0 && (k[i] == ')' || k[i] == ']'))
            {
                result[++n] = "No";
                break;
            }
            else if (k[i] == '(' || k[i] == '[')
                stack[++num] = k[i];
            else
            {
                if (abs(k[i] - stack[num] < 3))
                    num--;
                else
                {
                    result[++n] = "No";
                    break;
                }
            }
        }
        m--;
    }
        for (int j = 0; j <= n; j++)
        {
            if (j == n)
                cout << result[j];
            else
                cout << result[j] << endl;
        }
        return 0;
        }
    
    

虽然只是一个简单的栈,但是我也学到了一些东西,如下:

1.关于cout输出string的问题:cout函数重载的是string类库中的string类型引用https://www.cnblogs.com/mzct123/p/4876185.html

string:string类既是一个标准c++的类库,同时也是STL(Standard Template Library,标准模版库)中的类库,已经纳入C++标准之中。

string.hC语言里面关于字符数组的函数定义的头文件,常用函数有strlen、strcmp、strcpy等等

cstring:CString是MFC或者ATL中的实现,是MFC里面封装的一个关于字符串处理的功能很强大的类,只有支持MFC的工程才可以使用


猜你喜欢

转载自blog.csdn.net/luoshiyong123/article/details/80573210
今日推荐