消除括号

给定一个如下输入格式的字符串(1,(2,3),(4,(5,6),7))括号内的元素可以是数字,也可以是另一个括号,请实现一个算法消除嵌套的括号,比如把上面的表达式变成:(1,2,3,4,5,6,7),如果表达式有误请报错。

#include <string>
using namespace std;

string ElimenateBracket(const string &str){
    int counter = 0;
    string result;
    for(int i = 0; i < str.size(); ++i){
        if(str[i] == '('){
            ++counter;
        }
        else if(str[i] == ')'){
            --counter;
            if(counter < 0){
                result.clear();
                return result;
            }
        }
        else{
            result.push_back(str[i]);
        }
    }
    if(counter != 0){
        result.clear();
        return result;
    }
    result.insert(result.begin(), '(');
    result.push_back(')');
    return result;
}

int main(){
    string str("(1,(2,3),(4,(5,6),7))");
    string m = ElimenateBracket(str);
    return 0;

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,324评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,173评论 25 709
  • 春吃甘,脾平安;夏吃辛,养肺金; 秋吃酸,护肝胆;冬吃苦,把肾补。 春天,应该多吃甘味食物。甘味属土,土地养育万物...
    戰敭阅读 11,680评论 0 3
  • 山还是那座山热血沸腾烧不了那片林苍山夹乱流翠翠山中林春穷冬来花木又一春山依旧木常在 海常蓝银白沙滩围抱那片蓝海水拍...
    蒋光头jL94430阅读 3,430评论 33 37
  • 一 一位女性朋友COCO和多年没有见的同学聚会,以前是班里的学霸,成绩不错。 大家热聊着当年同学之间的友情和八卦,...
    Gina_Chan阅读 5,379评论 26 35