zoukankan      html  css  js  c++  java
  • 117. 占卜DIY

    原题链接:117. 占卜DIY



    解题思路

    搜索+模拟

    感觉这道题目,就是一道纯模拟的题目,没有什么难点,大致有几个易错点,这里提醒一下。

    1. 每次拿该堆的末尾,这一点容易犯错,因为不是拿之前的第四张牌,而是当前的末尾的牌
    2. 读入问题,这里读入需要特判几个点,也就是A,10,J,Q,K
    3. 注意储存问题,我的代码,下标0表示堆顶,5表示堆尾

    样例代码

    #include <bits/stdc++.h>
    using namespace std;
    vector<int> a[14];
    int sum[14],c[14];
    inline int get(char x)
    {
        if(x>='2' && x<='9')
            return x-'0';
        if(x=='A')
            return 1;
        if(x=='0')
            return 10;
        if (x=='J')
            return 11;
        if (x=='Q')
            return 12;
        if (x=='K')
            return 13;
    }
    int main()
    {
        for(int i=1;i<=13;i++)
        {
            a[i].push_back(0);
            for(int j=1;j<=4;j++)
            {
                char ch=getchar();
                getchar();
                a[i].push_back(get(ch));
            }
            c[i]=4;
        }
        for(int i=1;i<=4;i++)
        {
            int x=a[13][i];
            while(x!=13)
            {
                sum[x]++;
                x=a[x][c[x]--];
            }
        }
        int ans=0;
        for(int i=1;i<=12;i++)
            if(sum[i]==4)
                ans++;
        cout<<ans;
        return 0;
    }
    
  • 相关阅读:
    Spring mvc时间格式处理
    dubbo升级spring4与cxf
    dom4j使用总结
    java utils
    ES6
    ES6
    javascript常用方法
    ES6
    ES6
    ES6
  • 原文地址:https://www.cnblogs.com/hnkjdx-ssf/p/14326844.html
Copyright © 2011-2022 走看看