1018 锤子剪刀布python3无超时
文章目录
- 一、最初代码
- 二、改进点
- 三、最终代码
一、最初代码
#!/usr/bin/env python
# -*-coding:utf-8 -*-
'''
@File : 1018.py
@Time : 2020/03/24 12:51:44
@Author : Schiller Xu
@Version : 1.0
@Contact : schillerxu@qq.com
@License : (C)Copyright 2020-2021, SchillerXu
@Desc : None
'''n = int(input())
data = [input() for i in range(n)]
w = 0
f = 0
# 甲出剪刀石头布赢的次数
w_c = 0
w_j = 0
w_b = 0
# 乙出剪刀石头布赢的次数
f_c = 0
f_j = 0
f_b = 0for i in data:if i[0] == 'C':if i[2] == 'J':w += 1w_c += 1elif i[2] == 'B':f += 1f_b += 1elif i[0] == 'J':if i[2] == 'B':w += 1w_j += 1elif i[2] == 'C':f += 1f_c += 1else:if i[2] == 'C':w += 1w_b += 1elif i[2] == 'J':f += 1f_j += 1p = n-w-f
print(f"{w} {p} {f}")
print(f"{f} {p} {w}")if w_b >= w_c:if w_b >= w_j:print('B', end=' ')else:print('J', end=' ')
else:if w_c >= w_j:print('C', end=' ')else:print('J', end=' ')if f_b >= f_c:if f_b >= f_j:print('B')else:print('J')
else:if f_c >= f_j:print('C')else:print('J')
二、改进点
改进点如下:
- 主要原因:input改为sys.stdin.readline,input自动把读入的字符串去掉"\n",在大数据量下两者差别比较大;
- 只统计甲赢的次数和平的次数,甲赢的次数就是乙输的次数。
三、最终代码
#!/usr/bin/env python
# -*-coding:utf-8 -*-
'''
@File : 1018-1.py
@Time : 2020/07/10 10:42:43
@Author : Schiller Xu
@Version : 1.0
@License : (C)Copyright 2020-2021, SchillerXu
@Desc : None
'''import sysn=int(sys.stdin.readline())
#平的次数
p=0
#甲赢的次数
w=0
# 甲出剪刀石头布赢的次数
w_c = 0
w_j = 0
w_b = 0
# 乙出剪刀石头布赢的次数
f_c = 0
f_j = 0
f_b = 0for _ in range(n):s=sys.stdin.readline()#s=input()if s[0]==s[2]:p+=1else:if s[0]=='C':if s[2]=='J':w+=1w_c+=1else:f_b+=1elif s[0]=='J':if s[2]=='B':w+=1w_j+=1else:f_c+=1else:if s[2]=='C':w+=1w_b+=1else:f_j+=1print(w,p,n-p-w)
print(n-p-w,p,w)
if w_b >= w_c:if w_b >= w_j:print('B', end=' ')else:print('J', end=' ')
else:if w_c >= w_j:print('C', end=' ')else:print('J', end=' ')if f_b >= f_c:if f_b >= f_j:print('B')else:print('J')
else:if f_c >= f_j:print('C')else:print('J')
1018 锤子剪刀布python3无超时相关推荐
- PAT (Basic Level) Practice (中文)1018 锤子剪刀布 python (无超时)
出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344 1018 锤子剪刀布 (20 分) ...
- (python 3)1018 锤子剪刀布 (20分)
1018 锤子剪刀布 (20分) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么 ...
- C++学习之路 | PTA乙级—— 1018 锤子剪刀布 (20分)(精简)
1018 锤子剪刀布 (20分) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: FigCJB.jpg 现给出两人的交锋记录,请统计双方的胜.平.负次数, ...
- PTA 1018 锤子剪刀布 (c语言)
1018 锤子剪刀布 (20 分) 这个题,我做的时候一直以为是有捷径可循的,但是后来怎么想都想不出来. 只能暴力了,所谓暴力出奇迹,哈哈哈 代码如下: #include<stdio.h> ...
- 「PAT乙级真题解析」Basic Level 1018 锤子剪刀布 (问题分析+完整步骤+伪代码描述+提交通过代码)
乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范.从小白开始逐步掌握用编程解决问题. PAT乙级BasicLevelPractice 1018 锤子剪刀布 问题分析 题目要求统计 ...
- 1018 锤子剪刀布 (20分) 测试点五问题
我真是踩坑大人,阴沟里踩得最准 代码调试运行各种检查一直正常,测试点五死活过不去 最后看了柳神的代码一部分一部分模仿结果!!发现之前的代码出错的原因居然是 统计所有次数的时候我是用的是+=1,柳神用的 ...
- PAT 1018 锤子剪刀布 (20分) C语言实现
1018 锤子剪刀布 (20分) 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第 1 行给出正整数 N(≤10 5 ),即双方交锋 ...
- 1018 锤子剪刀布 (20 分)(算法分析+代码实现)
1018 锤子剪刀布 (20 分) 题目链接 算法分析 对于每组数据,都用对应的变量存储结果 代码实现 #include<bits/stdc++.h> using namespace st ...
- 1018. 锤子剪刀布
1018. 锤子剪刀布 ⼤家应该都会玩"锤⼦剪⼑布"的游戏:两⼈同时给出⼿势,胜负规则如图所示: 现给出两⼈的交锋记录,请统计双⽅的胜.平.负次数,并且给出双⽅分别出什么⼿势的胜算 ...
最新文章
- linux下抓包代码阿里云,10.10 linux下抓包
- 金审系统与SAP接口
- C# C/S系统软件开发平台架构图(原创)
- 分模块开发创建父工程——(六)
- Redis进阶-分布式存储 Sequential partitioning Hash partitioning
- 关于Java中的线程安全(线程同步)
- 基于mysql数据库binlog的增量订阅消费
- 动态添加模板列及保持页面状态
- 清华大学 现代软件工程 - 实战经验分享
- 此人提出平行线可以相交遭嘲讽,郁郁而终,12年后却被认可
- Java编写简单密码问题
- 计算机专业科研特长怎么写,毕业登记表特长怎么写(计算机专业)
- springboot JWT Token 自动续期的解决方案
- mysql 字段 decimals_[转]分析MySQL数据类型的长度【mysql数据字段 中length和decimals的作用!熟悉mysql必看】...
- 2017年7月最新全国行政规划数据库
- Windows 10 D盘操作需要管理员权限
- Android账号管理机制
- JavaScript笔记(狂神说)
- Ubuntu无法连接网络?
- 使用mockjson-server 搭建 mock-server