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;
    }
    
  • 相关阅读:
    高并发网络编程之epoll详解
    位操作实现加减乘除四则运算
    堆和栈的区别
    IT思想类智力题
    C/C++基础总结
    数据库总结
    面试网络总结
    Windows内存管理和linux内存管理
    面试操作系统总结
    数据结构与算法
  • 原文地址:https://www.cnblogs.com/hnkjdx-ssf/p/14326844.html
Copyright © 2011-2022 走看看