遇到的一道算法题

题目是给定一个字符串, 该字符串是一种简单的类似于Javascript函数调用。

比如 func1(123, 456) 或者 func1(123, 456, func2(78, ‘abc’))

要求输出是该字符串的一个解析树。

func1(123, 456) 输出为

func1(123, 456, func2(78, ‘abc’)) 输出为

为了简化题目,假设函数调用肯定是合法的,即函数左右括号肯定匹配,函数参数若是字符串都包括在单引号内,单引号内不存在括号、不存在逗号等等

这里直接给出了一个C#实现。如果有错误或者有更好的算法 请各位支出。

Original: https://www.cnblogs.com/VectorZhang/p/5365491.html
Author: 禅宗花园…迷失的佛
Title: 遇到的一道算法题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/572588/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • springboot之jackson的两种配置方式

    springboot 针对jackson是自动化配置的,如果需要修改,有两种方式: 方式一:通过application.yml 配置属性说明: spring.jackson.dat…

    Java 2023年5月30日
    058
  • Spring:AOP(切面)demo

    文章目录 + [项目目录结构](#-2) + [aop.xml](#aopxml-6) + [Log.java](#logjava-44) + [Test.java](#testj…

    Java 2023年5月30日
    062
  • Spring Boot+Mybatis 配置多数据源

    目前业界操作数据库的框架一般是 Mybatis,但在很多业务场景下,我们需要在一个工程里配置多个数据源来实现业务逻辑。在 SpringBoot中也可以实现多数据源并配合 Mybat…

    Java 2023年5月30日
    072
  • SpringBoot的自动配置实现和介绍

    自动配置实现逻辑 –> 约定大于配置 在spring4.0时提出了 Condition相关注解, Condition相关注解可以让用户提供一个判断条件,从而返回t…

    Java 2023年5月30日
    067
  • SpringBoot异步任务获取HttpServletRequest

    在使用框架日常开发中需要在controller中进行一些异步操作减少请求时间,但是发现在使用@Anysc注解后会出现Request对象无法获取的情况,本文就此情况给出完整的解决方案…

    Java 2023年6月15日
    065
  • 归并排序求解逆序对

    cpp;gutter:true;</p> <h1>include</h1> <h1>include</h1> <h…

    Java 2023年6月5日
    071
  • 三分钟入门

    网络编程(通俗易懂) tcp通信:打电话,对方接,接了,通话,互通性 udp通信:发短信,发完就完事 通信作用:无非就是传播交流信息,进行数据交换 实现网络通信: IP 端口 规则…

    Java 2023年6月6日
    058
  • C# 线程同步的三类情景

    C# 已经提供了我们几种非常好用的类库如 BackgroundWorker、Thread、Task等,借助它们,我们就能够分分钟编写出一个多线程的应用程序。 比如这样一个需求:有一…

    Java 2023年5月29日
    066
  • JavaWeb_(视频网站)_六、分页模块1

    分页模块 展示catagory.html页面 <div th:each="video:${catagory.videos}" class="it…

    Java 2023年5月29日
    070
  • Java学习-第一部分-第三阶段-第三节:MySQL基础

    零基础学MySQL 笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 一个问题 淘宝网,京东、微信,抖音都有各自的…

    Java 2023年6月15日
    074
  • 稀疏数组转换思路及代码实现

    基本功能 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用 稀疏数组来保存该数组。 处理方法 记录数组 一共有几行几列,有多少个 不同的值 把具有不同值的元素的行列及值…

    Java 2023年6月16日
    073
  • 消息队列-RabbitMQ的交换机和队列配置

    rabbitmq创建了指定name的交换机后,不允许对其进行改变,否则会报错。 类似报错信息请查看链接:https://www.cnblogs.com/wang-yaz/p/109…

    Java 2023年5月30日
    0153
  • 回形数格式方阵

    package com.atguigu.exer; import java.util.Scanner; public class Huixing{public static voi…

    Java 2023年6月13日
    071
  • slf4j、log4j2及logback使用

    slf4j、log4j2及logback使用 1、问题来源 之前看过关于slf4j、log4j2及logback的介绍,slf4j是门面,log4j2及logback是具体实现,仅…

    Java 2023年6月15日
    0101
  • 初识ServletJSPJavaBean

    通过网络资料的介绍,初步对Servlet、JSP和JavaBean有了感性认知,暂且小结如下: 1三者的概念 Servlet:Server Applet小服务程序 JSP:Java…

    Java 2023年5月29日
    068
  • Spring Boot使用AOP实现REST接口简易灵活的安全认证

    我们继续上一篇文章的分析,本文将通过AOP的方式实现一个相对更加简易 灵活的API安全认证服务。 我们先看实现,然后介绍和分析AOP基本原理和常用术语。 一、Authorized实…

    Java 2023年5月30日
    073
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球