python比赛积分类算法题_Python笔试压轴题:求解3V3球员比赛对阵名单问题

大学生想要做程序员,除了牢固的编程能力之外还需要灵活的思维,这也是企业对于大学生考察的两大重点:编码和算法设计思维。

由于排序问题都已经烂大街,所以今天给大家看的是我们笔试试卷中另一种算法题,也是我们针对于大学生笔试设计的最后一题,网上也能搜到,编程实现方式其实不限,但是我们要求使用Python。话不多说,直接看题。

Python

一、题目:3V3球员比赛,根据约束条件求队员对阵名单

题目描述:

题目

Request

Three players in team P and team Q will be choosed to run prizes. Members in team P are A,B,C, in team Q are X,Y,Z. The competition lists are decided by lots. Below information has been known:A's opponent is not X;C doesn't compete with X, Z. Please try to program to decide the competition lists using Python.

中文参考

从两只球队中各选择三位球员进行比赛。P队球员是A,B,C,Q队球员是X,Y,Z。比赛对手由抽签决定。已知:A的对手不是X,C不会和X,Z进行比赛。请尝试使用Python编程求出比赛名单。

二、题目解析

已知条件:A的对手不是X,C的对手不是X,Z

隐藏条件:对手之间互斥,即每一个球员对手无重复

求解思路:

1、A、B、C的对手都可能是X,Y,Z之中的一位

2、A的对手选定之后,B,C的对手只能在剩下的两位中选择(比如A对X,那么B,C只能对Y或Z)

其实这些都是很容易就能想到的,当然对大学生来说还是有一些难度的,尤其是怎么用代码实现,所以说编程对于思维的要求也是很高的。话不多说,下面直接看代码实现。

思维方式

三、代码实现

代码格式

源码:

P=['x','y','z']

# i表示A的对手

# j表示B的对手

# k表示C的对手

def playList():

for i in range(0,3):

for j in range(0,3):

if P[i] != P[j] : # A,B的对手不能相同

for k in range(0,3):

if P[i] != P[k] and P[j] != P[k]: # B,C的对手不能和A相同

if P[i] != 'x' and P[k] != 'x' and P[k] != 'z':

print("A 的对手是:",P[i])

print("B 的对手是:",P[j])

print("C 的对手是:",P[k])

if __name__ == "__main__":

playList()

持续更新Python面笔试考题,助你成功突破企业门槛

下期见

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值