解析BCON

题目描述:

在Web开发种,我们经常会用到JSON这种数据格式,为了简化问题,我们自定义了BCON这样的格式。它的基本形式如下:

{
    “Key1”->“StringValue”;
    “Key2”->{
        “SubKey1”->“abc”
    }
}

具体定义如下
1.格式由一对大括号({})包含,表示一个对象;
2.对象里可能包含0到多个Key和Value组合,多对组合之间由分号(;)分隔,最后一个组合后面不含有分号,同一层级的Key不会有相同的出现;
3.Key是由双引号(“”)包含的字符串,只含有字母或数字;
4.Value有2种类型
    a.由双引号(“”)包含的字符串类型,含有非双引号(“”)的其他可打印的ascii字符。
    b.由大括号({})包含的BCON对象


为了方便解析,我们将所有Key和Value间的空格和回车都去掉,形成紧奏型的BCON表达式:

{"Key1"->"StringValue","Key2"->{"Subkey1"->"abc"}

现在输入一个紧凑型的BCON表达式,求对应Key的Value值.

 输入描述:

输入第一行为不超过1024字节的字符串,代表紧凑型BCON表达式。
第二行为一个字符串,代表对应的Key值,如果Key是级联的,中间用点号(.)分隔。

输出描述:

对应Key的value值,如果对应的Key没有出现,则输出NULL.

示例1: 输入输出示例仅供调试,后台判题数据一般不包含示例

输入

{"Key1"->"StringValue";"Key2"->{"Subkey1"->"abc"}}
Key1

输出

"stringValue"


示例2:输入输出示例仅供调试,后台判题数据一般不包含示例

输入

{"Key1"->"StringValue";"Key2"->{"SubKey1"->"abc"}
Key2.subkey1

输出

“abc"

原理:

代码实现:

C++版本:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值