zoukankan      html  css  js  c++  java
  • 2014百度面试--算法消除嵌套的括号

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

    /************************************************************************/
    /*
    给定一个如下格式的字符串(1,(2,3),(4,(5,6),7))括号内的元素可以是数字,也可以是
    另一个括号,请实现一个算法消除嵌套的括号,比如把上面的表达式变成:(1,2,3,4,5,6,7),
    如果表达式有误请报错。
    
    */
    /************************************************************************/
    
    #include <stdio.h>
    #include <iostream>
    using namespace std;
    const int NUM = 100;
    char stack[NUM];
    char str[NUM];
    
    /**
    消除内嵌括号
    **/
    void remove_inline_brackets(char *str)
    {
        char tem[NUM];
        memset(tem,0,sizeof(tem));
        int top = -1,i=0,index=0;
        while(str[i] != '')
        {
            //不是括号则放入临时变量tem中
            if(str[i] != '(' &&str[i] != ')')
            tem[++index]=str[i];
            else{
                if(top == -1 ||stack[top] == str[i])
                stack[++top] = str[i];
                else top--;
            }
            i++;
        }
        if(top != -1)
        printf("expression is wrong
    ");
        else 
        {
            tem[0] ='(';
            tem[++index]=')';
            printf("%s
    ",tem);
        }
    }
    
    int main()
    {
        scanf("%s",str);
        remove_inline_brackets(str);
        return 0;
    }



  • 相关阅读:
    js-artDialog文档说明
    T-SQL数据库函数
    强大的Jquery对象选择器
    学习正则表达式
    经典正则
    其他常用的正则表达式
    celery的使用
    django中间件
    AJAX
    Django Form表单组件
  • 原文地址:https://www.cnblogs.com/newpanderking/p/3785953.html
Copyright © 2011-2022 走看看