数组实现简单斗地主游戏

import java.util.*;

// 定义扑克牌类
class Poker {
    private String suit; // 花色
    private String rank; // 点数

    public Poker(String suit, String rank) {
        this.suit = suit;
        this.rank = rank;
    }

    public String getRank() {
        return rank;
    }

    @Override
    public String toString() {
        return suit + rank;
    }
}

public class DouDiZhuGame {
    public static void main(String[] args) {
        // 初始化一副扑克牌
        List<Poker> pokerList = initPoker();

        // 洗牌
        Collections.shuffle(pokerList);

        // 发牌
        List<List<Poker>> players = dealPoker(pokerList);

        // 给玩家手牌排序
        sortHands(players);

        // 展示玩家手牌和底牌
        showHands(players);
    }

    // 初始化一副扑克牌
    private static List<Poker> initPoker() {
        List<Poker> pokerList = new ArrayList<>();
        String[] suits = {"♠", "♥", "♣", "♦"};
        String[] ranks = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};

        // 添加普通扑克牌
        for (String suit : suits) {
            for (String rank : ranks) {
                pokerList.add(new Poker(suit, rank));
            }
        }

        // 添加大小王
        pokerList.add(new Poker("", "小王"));
        pokerList.add(new Poker("", "大王"));

        return pokerList;
    }

    // 发牌
    private static List<List<Poker>> dealPoker(List<Poker> pokerList) {
        List<List<Poker>> players = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            players.add(new ArrayList<>());
        }
        List<Poker> bottomCards = new ArrayList<>();

        // 发牌
        for (int i = 0; i < pokerList.size(); i++) {
            if (i >= pokerList.size() - 3) {
                bottomCards.add(pokerList.get(i));
            } else {
                players.get(i % 3).add(pokerList.get(i));
            }
        }

        players.add(bottomCards);
        return players;
    }

    // 给玩家手牌排序
    private static void sortHands(List<List<Poker>> players) {
        // 定义扑克牌点数的大小顺序
        String[] rankOrder = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2", "小王", "大王"};
        Map<String, Integer> rankMap = new HashMap<>();
        for (int i = 0; i < rankOrder.length; i++) {
            rankMap.put(rankOrder[i], i);
        }

        for (List<Poker> hand : players) {
            Collections.sort(hand, (p1, p2) -> {
                int rank1 = rankMap.get(p1.getRank());
                int rank2 = rankMap.get(p2.getRank());
                return Integer.compare(rank1, rank2);
            });
        }
    }

    // 展示玩家手牌和底牌
    private static void showHands(List<List<Poker>> players) {
        String[] playerNames = {"玩家1", "玩家2", "玩家3", "底牌"};
        for (int i = 0; i < players.size(); i++) {
            System.out.println(playerNames[i] + "的手牌:" + players.get(i));
        }
    }
}    

这段 Java 代码实现了一个简单的斗地主游戏,主要包含了扑克牌的初始化、洗牌、发牌、手牌排序以及展示手牌等功能。下面我会逐部分详细解释代码。

1. 导入必要的包

import java.util.*;

这行代码导入了 java.util 包下的所有类,该包提供了许多常用的集合类(如 ListMapArrayListHashMap 等)以及工具类(如 Collections)。

2. 定义扑克牌类 Poker

class Poker {
    private String suit; // 花色
    private String rank; // 点数

    public Poker(String suit, String rank) {
        this.suit = suit;
        this.rank = rank;
    }

    public String getRank() {
        return rank;
    }

    @Override
    public String toString() {
        return suit + rank;
    }
}

  • suitrankPoker 类的两个私有属性,分别表示扑克牌的花色和点数。
  • 构造函数 Poker(String suit, String rank) 用于创建 Poker 对象,初始化花色和点数。
  • getRank() 方法用于获取扑克牌的点数。
  • toString() 方法被重写,返回扑克牌的花色和点数组合的字符串,方便后续打印输出。

3. 主类 DouDiZhuGame

3.1 main 方法

public static void main(String[] args) {
    // 初始化一副扑克牌
    List<Poker> pokerList = initPoker();

    // 洗牌
    Collections.shuffle(pokerList);

    // 发牌
    List<List<Poker>> players = dealPoker(pokerList);

    // 给玩家手牌排序
    sortHands(players);

    // 展示玩家手牌和底牌
    showHands(players);
}

main 方法是程序的入口点,按顺序调用了以下几个方法:

  • initPoker():初始化一副完整的扑克牌。
  • Collections.shuffle(pokerList):使用 Collections 类的 shuffle 方法对扑克牌列表进行洗牌,打乱牌的顺序。
  • dealPoker(pokerList):将洗好的牌发给三个玩家,并留下三张底牌。
  • sortHands(players):对每个玩家的手牌进行排序。
  • showHands(players):展示每个玩家的手牌和底牌。

3.2 initPoker 方法

private static List<Poker> initPoker() {
    List<Poker> pokerList = new ArrayList<>();
    String[] suits = {"♠", "♥", "♣", "♦"};
    String[] ranks = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};

    // 添加普通扑克牌
    for (String suit : suits) {
        for (String rank : ranks) {
            pokerList.add(new Poker(suit, rank));
        }
    }

    // 添加大小王
    pokerList.add(new Poker("", "小王"));
    pokerList.add(new Poker("", "大王"));

    return pokerList;
}

该方法用于初始化一副完整的扑克牌:

  • 创建一个 ArrayList 来存储扑克牌。
  • 定义两个数组 suitsranks,分别表示扑克牌的花色和点数。
  • 使用嵌套的 for 循环遍历花色和点数,创建普通扑克牌并添加到 pokerList 中。
  • 最后添加大小王到 pokerList 中,并返回该列表。

3.3 dealPoker 方法

private static List<List<Poker>> dealPoker(List<Poker> pokerList) {
    List<List<Poker>> players = new ArrayList<>();
    for (int i = 0; i < 3; i++) {
        players.add(new ArrayList<>());
    }
    List<Poker> bottomCards = new ArrayList<>();

    // 发牌
    for (int i = 0; i < pokerList.size(); i++) {
        if (i >= pokerList.size() - 3) {
            bottomCards.add(pokerList.get(i));
        } else {
            players.get(i % 3).add(pokerList.get(i));
        }
    }

    players.add(bottomCards);
    return players;
}

该方法用于发牌:

  • 创建一个 List<List<Poker>> 类型的 players 列表,用于存储三个玩家的手牌,每个玩家的手牌也是一个 List<Poker>
  • 创建一个 List<Poker> 类型的 bottomCards 列表,用于存储三张底牌。
  • 使用 for 循环遍历扑克牌列表,将前 51 张牌依次发给三个玩家,最后三张牌作为底牌。
  • 将底牌列表添加到 players 列表的最后,并返回 players 列表。

3.4 sortHands 方法

private static void sortHands(List<List<Poker>> players) {
    // 定义扑克牌点数的大小顺序
    String[] rankOrder = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2", "小王", "大王"};
    Map<String, Integer> rankMap = new HashMap<>();
    for (int i = 0; i < rankOrder.length; i++) {
        rankMap.put(rankOrder[i], i);
    }

    for (List<Poker> hand : players) {
        Collections.sort(hand, (p1, p2) -> {
            int rank1 = rankMap.get(p1.getRank());
            int rank2 = rankMap.get(p2.getRank());
            return Integer.compare(rank1, rank2);
        });
    }
}

该方法用于对每个玩家的手牌进行排序:

  • 定义一个 rankOrder 数组,指定扑克牌点数的大小顺序。
  • 创建一个 HashMap 类型的 rankMap,将每个点数映射到一个整数,方便后续比较大小。
  • 使用 for 循环遍历每个玩家的手牌,使用 Collections 类的 sort 方法和自定义的比较器对其进行排序。比较器通过比较两张牌的点数对应的整数大小来确定牌的顺序。

3.5 showHands 方法

private static void showHands(List<List<Poker>> players) {
    String[] playerNames = {"玩家1", "玩家2", "玩家3", "底牌"};
    for (int i = 0; i < players.size(); i++) {
        System.out.println(playerNames[i] + "的手牌:" + players.get(i));
    }
}

该方法用于展示每个玩家的手牌和底牌:

  • 定义一个 playerNames 数组,存储玩家和底牌的名称。
  • 使用 for 循环遍历 players 列表,打印每个玩家的手牌和底牌。

综上所述,这段代码通过一系列方法实现了斗地主游戏的基本流程,包括初始化扑克牌、洗牌、发牌、排序和展示手牌等功能。

Java集合框架 文章被收录于专栏

Java集合框架是Java提供的一组用于存储和操作数据的类和接口,它位于java.util包中,为开发者提供了强大且灵活的数据存储和处理能力。以下将从整体架构、主要接口、常用实现类、使用场景以及示例代码等方面详细介绍Java集合框架。

全部评论
最关键的打牌部分在哪呢
点赞 回复 分享
发布于 04-21 13:28 浙江

相关推荐

04-20 21:45
已编辑
上海交通大学 C++
第一题&nbsp;k路字符串&nbsp;优先级队列第二题&nbsp;裸的拓扑排序,注意判断是否有环第三题&nbsp;一开始直接写的最长上升子序列(严格),WA,于是推断山的高度必须是整数,于是对nums[i]-i求最长上升子序列(不严格)AC第四题&nbsp;样例过,提交之后过0%样例,没看出来哪里错了,贴一下代码&nbsp;#include&nbsp;using&nbsp;namespace&nbsp;std;int&nbsp;main()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;//数据范围来说,至少是需要n方或者更好的算法&nbsp;&nbsp;&nbsp;&nbsp;//注意读题,首先不是严格大于,其次需要注意交换需要前提条件,即a[i]&nbsp;&gt;&nbsp;x,这意味着交换过程中,x的数值是原来越大的,和x交换的值的门槛也是越来越大,隐含的条件就是如果小于x的数字没有有序,那么久没办法完成操作了&nbsp;&nbsp;&nbsp;&nbsp;//手玩一下:&nbsp;&nbsp;&nbsp;&nbsp;//81&nbsp;324&nbsp;218&nbsp;413&nbsp;324&nbsp;x&nbsp;=&nbsp;18&nbsp;如果与i&gt;=1的位置交换,剩下的18没人可以换走,直接不可行&nbsp;&nbsp;&nbsp;&nbsp;//18&nbsp;324&nbsp;218&nbsp;413&nbsp;324&nbsp;x&nbsp;=&nbsp;81&nbsp;同理,如果与i&nbsp;&gt;=&nbsp;2的位置交换,剩下的81没有可以换走,直接不可行&nbsp;&nbsp;&nbsp;&nbsp;//18&nbsp;81&nbsp;218&nbsp;413&nbsp;324&nbsp;x&nbsp;=&nbsp;324&nbsp;我们选择将413与324交换&nbsp;&nbsp;&nbsp;&nbsp;//18&nbsp;81&nbsp;218&nbsp;324&nbsp;324&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//再来领悟一下样例&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;2&nbsp;3&nbsp;5&nbsp;4&nbsp;x&nbsp;=&nbsp;1&nbsp;当前发现后面有一个4在捣乱,我们要想办法把它调整下来,但是要调整,就说明当前x&nbsp;=&nbsp;1需要换上去到某一个位置,也就只能是和2换,这一步是固定的&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;1&nbsp;3&nbsp;5&nbsp;4&nbsp;x&nbsp;=&nbsp;2&nbsp;同样的,捣乱的4还没有解决,所以继续要调整,当前x&nbsp;=&nbsp;2只能换在begin,故而&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;1&nbsp;2&nbsp;5&nbsp;4&nbsp;x&nbsp;=&nbsp;3&nbsp;begin变成了5的下标&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;1&nbsp;2&nbsp;3&nbsp;4&nbsp;x&nbsp;=&nbsp;5&nbsp;此时发现已经解决//再来领悟一下输出-1的样例&nbsp;&nbsp;&nbsp;&nbsp;//11&nbsp;9&nbsp;x&nbsp;=&nbsp;10&nbsp;当前begin&nbsp;=&nbsp;0&nbsp;end&nbsp;=&nbsp;1,但是注意到nums[end]&nbsp;&lt;&nbsp;x,最终不可以被移动,所以已经寄了&nbsp;&nbsp;&nbsp;&nbsp;//以上过程说明:对于小于x的内容,如果是已经有序地位于开头,那么就已经不可行了&nbsp;&nbsp;&nbsp;&nbsp;//对于大于x的无序的内容,如果存在多个,比如10&nbsp;20&nbsp;30&nbsp;40&nbsp;6&nbsp;4&nbsp;x=&nbsp;3,其中6和4都是乱序的,但似乎此时并不需要决定和其中的谁交换,只能从begin开始交换&nbsp;&nbsp;&nbsp;&nbsp;//3&nbsp;20&nbsp;30&nbsp;40&nbsp;6&nbsp;4&nbsp;x&nbsp;=&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;//3&nbsp;10&nbsp;30&nbsp;40&nbsp;6&nbsp;4&nbsp;x&nbsp;=&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp;//3&nbsp;10&nbsp;20&nbsp;40&nbsp;6&nbsp;4&nbsp;x&nbsp;=&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;//3&nbsp;10&nbsp;20&nbsp;30&nbsp;6&nbsp;4&nbsp;x&nbsp;=&nbsp;40&nbsp;爆炸&nbsp;&nbsp;&nbsp;&nbsp;//至此大胆提出假设:先处理得到其中单增的区间&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;2&nbsp;3&nbsp;5&nbsp;4&nbsp;x&nbsp;=&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;//其中比x小的部分已经确保落在该有的位置上了&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;[2&nbsp;3&nbsp;5]&nbsp;[4]&nbsp;x&nbsp;=&nbsp;1&nbsp;那么我们会把{[2,&nbsp;3,&nbsp;5]&nbsp;x&nbsp;=&nbsp;1}变化为{[1&nbsp;2&nbsp;3]&nbsp;x&nbsp;=&nbsp;5},即相当于原来有序的空间中最大的没了,最小的变成原有x。花费是有序空间大小&nbsp;&nbsp;&nbsp;&nbsp;//然后x变成了原有空间中最大的那个,然后继续这样扫描//再来手玩一下:&nbsp;&nbsp;&nbsp;&nbsp;//4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9&nbsp;10&nbsp;3&nbsp;x&nbsp;=&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//{[4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9&nbsp;10]&nbsp;x&nbsp;=&nbsp;1}-&gt;{[1&nbsp;4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9]&nbsp;x&nbsp;=&nbsp;10}&nbsp;由于次大的9还是大于无序的3,所以没办法&nbsp;&nbsp;&nbsp;&nbsp;//总结思路:线性扫描,找到从开始到现在最长的有序集(其中小于x的部分不统计长度)int&nbsp;t;&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;t;&nbsp;&nbsp;&nbsp;&nbsp;while(t--)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n,&nbsp;x;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;n&gt;&gt;x;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector&nbsp;nums(n);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;++i)&nbsp;cin&gt;&gt;nums[i];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;begin&nbsp;=&nbsp;0,&nbsp;end&nbsp;=&nbsp;0,&nbsp;costBegin&nbsp;=&nbsp;-1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ans&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;flag&nbsp;=&nbsp;true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(begin&nbsp;&lt;&nbsp;n)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//end&nbsp;begin&nbsp;costBegin&nbsp;x&nbsp;ans&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(end&nbsp;+&nbsp;1&nbsp;&lt;&nbsp;n&nbsp;&amp;amp;&amp;amp;&nbsp;nums[end&nbsp;+&nbsp;1]&nbsp;&gt;=&nbsp;nums[end])//扫描到end,并更新end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(costBegin&nbsp;==&nbsp;-1&nbsp;&amp;amp;&amp;amp;&nbsp;nums[end]&nbsp;&gt;&nbsp;x)&nbsp;costBegin&nbsp;=&nbsp;end;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++end;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;cout&lt;&lt;&amp;quot;begin&nbsp;=&nbsp;&amp;quot;&lt;&lt;&lt;&amp;quot;,&nbsp;end&nbsp;=&nbsp;&amp;quot;&lt;&lt;&lt;&amp;quot;,&nbsp;costBegin&nbsp;=&nbsp;&amp;quot;&lt;&lt;&lt;&#39;\n&#39;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//从begin&nbsp;到&nbsp;end&nbsp;递增,且从costBegin开始大于x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(end&nbsp;==&nbsp;n&nbsp;-&nbsp;1)&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(begin&nbsp;!=&nbsp;end)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(nums[end&nbsp;+&nbsp;1]&nbsp;&lt;&nbsp;nums[end&nbsp;-&nbsp;1])&nbsp;{flag&nbsp;=&nbsp;false;&nbsp;break;}//没办法调整&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;+=&nbsp;(end&nbsp;-&nbsp;costBegin&nbsp;+&nbsp;1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;=&nbsp;nums[end];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;=&nbsp;begin&nbsp;=&nbsp;end&nbsp;+&nbsp;2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;costBegin&nbsp;=&nbsp;-1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(nums[end]&nbsp;&gt;&nbsp;x&nbsp;&amp;amp;&amp;amp;&nbsp;x&nbsp;&lt;=&nbsp;nums[end&nbsp;+&nbsp;1])&nbsp;{++ans;&nbsp;x&nbsp;=&nbsp;nums[end];&nbsp;end&nbsp;=&nbsp;begin&nbsp;=&nbsp;end&nbsp;+&nbsp;2;&nbsp;costBegin&nbsp;=&nbsp;-1;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{flag&nbsp;=&nbsp;false;&nbsp;break;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(flag)&nbsp;cout&lt;&lt;&lt;&#39;\n&#39;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;cout&lt;&lt;&amp;quot;-1\n&amp;quot;;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务