• 【CCF】JSON查询


    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<cstring>
    #include<algorithm>
    #include<map>
    
    using namespace std;
    int n,m;
    const int maxn=82;
    char str[maxn];
    bool flag;
    map<string,string> mp;
    string handle(string fa){
        int len=strlen(str);
        len--;
        for(int i=0;i<len;i++){
            if(str[i]=='"'){
                string tmp;
                while(str[++i]!='"'){
                    if(str[i]!='\'){
                        tmp+=str[i];
                    }else{
                        ++i;
                        tmp+=str[i];
                    }
                }
                if(flag==false){
                    fa=fa+'.'+tmp;
                    flag=true;
                }else{
                    mp[fa]="STRING "+tmp;
                    flag=false;
                    int sz=fa.length();
                    int j=sz-1;
                    for(;j>=0;j--){
                        if(fa[j]=='.') break;
                    }
                    if(j<0) fa="";
                    else fa=fa.substr(0,j);
                }
            }else if(str[i]=='{'){
                mp[fa]="OBJECT";
                flag=false;
            }else if(str[i]=='}'){
                int sz=fa.length();
                int j=sz-1;
                for(;j>=0;j--){
                    if(fa[j]=='.') break;
                }
                if(j<0) fa="";
                else fa=fa.substr(0,j);
            }else{
                continue;
            }
        }
        return fa;
    }
    int main(){
        cin>>n>>m;
        getchar();
        string fa="";
        flag=false;
        while(n--){
            fgets(str,maxn,stdin);
            fa=handle(fa);
        }
        while(m--){
            string query;
            cin>>query;
            query='.'+query;
            if(mp.find(query)!=mp.end()){
                cout<<mp[query]<<endl;
            }else{
                cout<<"NOTEXIST"<<endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    课后作业-阅读任务-阅读提问-4
    团队-象棋游戏-开发文档
    团队-象棋游戏-模块测试过程
    团队编程项目作业3-模块开发过程
    团队-象棋游戏-项目进度
    团队编程总结
    团队编程项目作业,维护
    个人编程总结2
    阅读笔记4
    课后提问4
  • 原文地址:https://www.cnblogs.com/itcsl/p/9214615.html
Copyright © 2020-2023  润新知