第二场(A-牛牛扔牌)

链接:https://ac.nowcoder.com/acm/contest/6219/A
来源:牛客网

题目描述:
牛牛现在有n张扑克牌,每张扑克牌都有点数和花色两部分组成。点数为‘1’-‘9’的正整数,花色为'C','D','H','S''其中的一个,分别表示梅花、方块、红桃、黑桃。现在牛牛想按一定的顺序把这n张牌扔掉。扔牌顺序的规则如下1.:
1.如果现在还剩素数张牌,则将牌顶的牌扔掉
2.如果现在还剩非素数张牌,则将牌底的牌扔掉
牛牛想知道他的扔牌顺序是什么,请返回扔牌顺序的字符串

示例1
输入
"3C8D6H3D"
输出
"3D3C8D6H"
说明
开始n=4,为非素数,扔掉牌底的牌3D
n=3,为素数,扔掉牌顶的牌3C
n=2,为素数,扔掉牌顶的牌8D
n=1,为非素数,扔掉牌底的牌6H
解题思路:
简单模拟。
代码:

class Solution {
public:
    /**
     * 
     * @param x string字符串 字符串从前到后分别是从上到下排列的n张扑克牌
     * @return string字符串
     */
    string Orderofpoker(string x) {
        // write code here
        string res;
        int n = x.size() / 2, p[11];
        memset(p, 0, sizeof(p));
        p[2] = 1, p[3] = 1, p[5] = 1, p[7] = 1;
        for(int i = 0, j = n, t = n; t > 0; --t) {
            if(p[t]) res += x.substr(2 * i, 2), ++i;
            else res += x.substr(2 * j - 2, 2), --j;
        }
        return res;
    }
};
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务