C++检测字符串中有效的括号个数

 匹配一个字符串buf中,连续包换运算符reg的次数:


#include <iostream>

//return 返回匹配的字符个数
//buf, 要检测的字符串
//reg, 包含的连续运算符
int GetMatchCount(std::string& buf, std::string& reg)
{
    int nMatchCount = 0;

	if (reg.empty())
		return nMatchCount;

    std::string matchReg = reg;
    for (int i = 0; i < buf.length(); i++)
    {
        if (buf[i] == matchReg.front())
        {
            matchReg.erase(matchReg.begin());
        }

        if (matchReg.empty())
        {
            nMatchCount ++;

            matchReg = reg;
        }
    }

    return nMatchCount;
}

使用示例:


int main()
{

    std::string text = "[][][[(Hello World!)]";
    std::string reg = "[]";

    std::cout << "match string:\"" << text << "\" | reg(\"" << reg << "\")" << std::endl;
    int count = GetMatchCount(text, reg);
    std::cout << "match count: " << count << std::endl;

    return 0;
}

运行结果:

相关推荐

  1. LeetCode 678:有效括号字符串 ← 贪心算法

    2023-12-05 19:20:06       41 阅读
  2. 有效括号

    2023-12-05 19:20:06       59 阅读
  3. 20 有效括号

    2023-12-05 19:20:06       39 阅读
  4. Leetcode:有效括号

    2023-12-05 19:20:06       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-05 19:20:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-05 19:20:06       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-05 19:20:06       82 阅读
  4. Python语言-面向对象

    2023-12-05 19:20:06       91 阅读

热门阅读

  1. vue form表单的封装--使用的是elementUI

    2023-12-05 19:20:06       58 阅读
  2. 后端常用的方法

    2023-12-05 19:20:06       59 阅读
  3. 在CentOS 8.2中安装Percona Xtrabackup 8.0.x备份MySql

    2023-12-05 19:20:06       54 阅读