zoukankan      html  css  js  c++  java
  • 翻译布尔表达式

                          翻译布尔表达式
    

    Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description
    大家都学过了布尔表达式的翻译,其中有一个拉链-回填技术,这次我们就练习这个技术。 Input 多组输入,每组输入为一行字符串,例如: a
    < b or c < d and e < f 每个符号都用空格间隔 Output 假链跳到0,真链跳到1,表达式序号从100开始排。
    Sample Input 1 a < b or c < d and e < f Sample Output 100(j<,a,b,1)
    101(j,,,102) 102(j<,c,d,104) 103(j,,,0) 104(j<,e,f,100)
    105(j,,,103) Hint Source

    #include<bits/stdc++.h>
    using namespace std;
    string s;
    int t,f;
    vector<string>ans;
    int main()
    {
        int n;
        scanf("%d
    ",&n);
        while(n--)
        {
           getline(cin,s);
            t=1,f=0;
            s += " end";
            string x;
            stringstream ss(s);
            int id=100;
            while(ss>>x)
            {
                if(x == "or")
                {
                    printf("%d(j%s,%s,%s,%d)
    ",id,ans[1].c_str(),ans[0].c_str(),ans[2].c_str(),t);
                    t=id++;
                    printf("%d(j,_,_,%d)
    ",id,id+1);
                    id++;
                    ans.clear();
                }
                else if(x == "end")
                {
                    printf("%d(j%s,%s,%s,%d)
    ",id++,ans[1].c_str(),ans[0].c_str(),ans[2].c_str(),t);
                    /* t=id++*/;
                    printf("%d(j,_,_,%d)
    ",id++,f);
                   /* id++;*/
                    ans.clear();
                }
                else if(x == "and")
                {
                    printf("%d(j%s,%s,%s,%d)
    ",id,ans[1].c_str(),ans[0].c_str(),ans[2].c_str(),id+2);
                    id++;
                    printf("%d(j,_,_,%d)
    ",id,f);
                    f=id++;
                    ans.clear();
                }
    
                else ans.push_back(x);
            }
        }
        return 0;
    }
  • 相关阅读:
    让ios支持openssl
    数组
    NSValue
    音频
    NSObject分类
    NSJSONSerialization
    Java并发编程-深入探讨synchronized实现原理
    设计模式-挖掘工厂模式应用场景-全面分析工厂模式原理
    Spring插件安装
    Java并发编程-深入Java同步器AQS原理与应用-线程锁必备知识点
  • 原文地址:https://www.cnblogs.com/CCCrunner/p/11781727.html
Copyright © 2011-2022 走看看