zoukankan      html  css  js  c++  java
  • 【POJ 2503】Babelfish(字符串)

    给定字典,再询问。

    字典与询问之间有一个空行。

    cin.peek()是一个指针指向当前字符。

    #include<iostream>
    #include<string>
    #include<map>
    using namespace std;
    map<string, string>dic;
    string s, t;
    int f;
    int main()
    {
        ios::sync_with_stdio(false);
        while(cin >> s)
            if(cin.peek() == '
    ')//指针当前指向
    
                if(!f)
                {
                    f = 1;
                    dic[s] = t;//当前读入的s是外星文,刚才读入的t是对应的英文
                }
                else
                    cout << ((t = dic[s]) != "" ? t : "eh" ) << "
    ";
            else//未换行说明s是字典的英文
            {
                f = 0;//f=0代表下一个要读外星文
                t = s;
            }
    }

    处理空行的技巧

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    #define N 100005
    #define M 15
    char s[N];
    int c;
    struct mydic
    {
        char zh[M];//外星文
        char en[M];//英文
    } dic[N];
    int cmp(const mydic &a, const mydic &b)
    {
        return strcmp(a.zh, b.zh) >= 0;
    }
    void  solve()
    {
        int l = 0, r = c;
        while(l < r)
        {
            int m = r+l >> 1;
            int f = strcmp(s, dic[m].zh);
            if(f == 0)
            {
                printf("%s
    ", dic[m].en);
                return;
            }
            if(f < 0)
                l = m + 1;
            else
                r = m;
        }
        printf("eh
    ");
    }
    int main()
    {
        while(gets(s))
        {
            if(!s[0])break;//读到空行
            sscanf(s,"%s%s",dic[c].en,dic[c].zh);
            c++;
        }
        sort(dic, dic + c, cmp);
        while(gets(s))
            solve();
    }

      

      

  • 相关阅读:
    浅谈Tarjan算法及思想
    浅谈前向星
    线段树初步
    树状数组的简单运用
    字典树(trie树)的指针简单实现pascal
    排序专辑
    POJ 2155 Matrix (矩形)
    区间动态规划
    hdu-2795 Billboard---线段树
    hdu-1754 I Hate It---线段树模板题
  • 原文地址:https://www.cnblogs.com/flipped/p/5723011.html
Copyright © 2011-2022 走看看