描述

石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。

一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头-剪刀……”,就是以“石头-布-石头-剪刀”为周期不断循环的。请问,小A和小B比了N轮之后,谁赢的轮数多?

输入

输入包含三行。
第一行包含三个整数:N,NA,NB,分别表示比了N轮,小A出拳的周期长度,小B出拳的周期长度。0 < N,NA,NB < 100。
第二行包含NA个整数,表示小A出拳的规律。
第三行包含NB个整数,表示小B出拳的规律。
其中,0表示“石头”,2表示“剪刀”,5表示“布”。相邻两个整数之间用单个空格隔开。

输出

输出一行,如果小A赢的轮数多,输出A;如果小B赢的轮数多,输出B;如果两人打平,输出draw。

通过码文件:bc035ecb44fb395bb7018d240c98cf8deff9f69efcf3da17f2b049d297021091

代码:

def result(a,b):if a == b:return 0if a == 5 and b == 0:return 1if a == 0 and b == 5:return -1if a < b:return 1else:return -1s = input().split()
n,na,nb = int(s[0]),int(s[1]),int(s[2])
sa = input().split()  # A的规律
sb = input().split()  # B的规律
winA = winB = 0 # A和B赢的次数
ptrA = ptrB = 0 # A和B打平的次数
for i in range(n):r = result(int(sa[ptrA]), int(sb[ptrB])) # 比赛结果if r == 1:winA += 1elif r == -1:winB += 1ptrA = (ptrA + 1) % naptrB = (ptrB + 1) % nb
if winA > winB:print("A")
elif winA < winB:print("B")
else:print("draw")

032:统计数字字符个数

总时间限制:

1000ms

内存限制:

65536kB

描述

输入一行字符,统计出其中数字字符的个数。

输入

一行字符串,总长度不超过255。

输出

输出为1行,输出字符串里面数字字符的个数。

样例输入

Peking University is set up at 1898.

样例输出

4

通过码:867e9d67dfc2070cbae928920048e8c98647b4bb3dedaca8d19bf81786e9b435

代码

str1 = input()
sum=0
i=0
while i < len(str1):if str1[i].isdigit():sum += 1i += 1
print(sum)

通过码:6a6c69b9b32f69a457b648716762ab9d887d9d9feba348d6051cc0844a9dbb3d

033:大小写字母互换​​​​​

总时间限制:

1000ms

内存限制:

65536kB

描述

把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母。

输入

输入一行:待互换的字符串。

输出

输出一行:完成互换的字符串(字符串长度小于80)。

样例输入

If so, you already have a Google Account. You can sign in on the right. 

样例输出

iF SO, YOU ALREADY HAVE A gOOGLE aCCOUNT. yOU CAN SIGN IN ON THE RIGHT. 

代码:

s = input()
for i in s:if i.isupper():print(i.lower(),end="")elif i.islower():print(i.upper(),end="")else:print(i,end='')

034:过滤多余的空格

描述

一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。

输入

一行,一个字符串(长度不超过200),句子的头和尾都没有空格。

输出

过滤之后的句子。

样例输入

Hello      world.This is    c language.

样例输出

Hello world.This is c language.

通过码:9a05d95a008fb8f44f14e6a98e7d13c90ecf671cadb6dbcad610a649ddb37e92

代码:

tmpStr = input()
flag = False    #前面一个字符是空格的标识符,False表示前面的字符不是空格
for i in range(len(tmpStr)):if tmpStr[i]==' ' and tmpStr[i-1]==' ':print('', end='')else:print(tmpStr[i], end='')

035:找第一个只出现一次的字符

描述

给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。

输入

一个字符串,长度小于100000。

输出

输出第一个仅出现一次的字符,若没有则输出no。

样例输入

abcabd

样例输出

c

通过码: c3a82ff4f04e8bd3720c9ded1dfe9608008542da39745b90f6855afbb6752f1a

s=input()
fl=1
for i in range(len(s)):if s.count(s[i])==1:print(s[i])fl=0break
if fl==1:print('no')

036:判断字符串是否为回文

描述

输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。

输入

输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。

输出

如果字符串是回文,输出yes;否则,输出no。

样例输入

abcdedcba

样例输出

yes

通过码:06546b0aaa0d23293177f440a0e9c1ada5a1a99fd0b961ffff02cf421dc36d82

tmpStr = input()
if tmpStr == tmpStr[::-1]:print('yes')
else:print('no')

037:字符串最大跨距

描述

有三个字符串S,S1,S2,其中,S长度不超过300,S1和S2的长度不超过10。想检测S1和S2是否同时在S中出现,且S1位于S2的左边,并在S中互不交叉(即,S1的右边界点在S2的左边界点的左侧)。计算满足上述条件的最大跨距(即,最大间隔距离:最右边的S2的起始点与最左边的S1的终止点之间的字符数目)。如果没有满足条件的S1,S2存在,则输出-1。

例如,S = "abcd123ab888efghij45ef67kl", S1="ab", S2="ef",其中,S1在S中出现了2次,S2也在S中出现了2次,最大跨距为:18。

输入

三个串:S, S1, S2,其间以逗号间隔(注意,S, S1, S2中均不含逗号和空格);

输出

S1和S2在S最大跨距;若在S中没有满足条件的S1和S2,则输出-1。

通过码: d6b9270b63bf981c401a2fbef999171fac0dd3bad3d4c8d0c7632173d968b5e3

tmpStr = input().split(',')
if tmpStr[0].count(tmpStr[1])!=0 and tmpStr[0].count(tmpStr[2])!=0 and \(tmpStr[0].rfind(tmpStr[1]) + len(tmpStr[1]) -1)<tmpStr[0].find(tmpStr[2]):print(tmpStr[0].rfind(tmpStr[2]) - tmpStr[0].find(tmpStr[1]) - len(tmpStr[1]))
else:print(-1)

038:找出全部子串位置

描述

输入两个串s1,s2,找出s2在s1中所有出现的位置

两个子串的出现不能重叠。例如'aa'在 aaaa 里出现的位置只有0,2

输入

第一行是整数n
接下来有n行,每行两个不带空格的字符串s1,s2

输出

对每行,从小到大输出s2在s1中所有的出现位置。位置从0开始算
如果s2没出现过,输出 "no"
行末多输出空格没关系

样例输入

4
ababcdefgabdefab ab
aaaaaaaaa a
aaaaaaaaa aaa
112123323 a

样例输出

0 2 9 14
0 1 2 3 4 5 6 7 8
0 3 6
no

通过码: c8037a247d336fdd727961c49fd8e7a0022a29bbc3382c94322dcebdb8bd4cf2

n = int(input())
for i in range(n):s = input().split()m = 0total = 0for j in s[0]:a = s[0].find(s[1],m)if a == -1:if total == 0:print('no',end='')breakelse:total += 1m = a + len(s[1])print(a,"",end='')print("")

039:万年历

描述

给定年月日,求星期几。已知2020年11月18日是星期三。另外,本题有公元0年,这个和真实的纪年不一样

输入

第一行是n(n <=30),表示有n组数据
接下来n行,每行是一组数据。
每行三个整数y,m,d,分别代表年,月,日。(-1000000<=y<=1000000)

若今年是2017年,则往前就是2016年,2015年....一直数到2年,1年,再往前就是0年,-1年,-2年.....

输出

对每组数据,输出星期几,星期几分别用

"Sunday","Monday","Tuesday","Wednesday","Thursday", "Friday","Saturday" 表示

如果月份和日期不合法,输出"Illegal"

样例输入

6
2017 2 29
2017 13 2
0 1 1
-2 3 4
2017 10 18
2015 12 31

样例输出

Illegal
Illegal
Saturday
Wednesday
Wednesday
Thursday

通过码: 3c9ca2444b354e311952bf63a4e5740d6f3777d77fad499a21712a06c427c634

n = int(input())def days_of_week(year, mon, day):list1 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]  #闰年2月份为29天list2 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]  #平年2月份为28天date = 0years = 0lst_days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday"]if (year % 4 == 0) & (year % 100 != 0) or year % 400 == 0:if mon in [1, 3, 5, 7, 8, 10, 12]:if day < 1 or day > 31:print('Illegal')returnelif mon == 2:if day < 1 or day > 29:print('Illegal')returnelif mon in [4, 6, 9, 11]:if day < 1 or day > 30:print('Illegal')returnelse:print('Illegal')returnelse:if mon in [1, 3, 5, 7, 8, 10, 12]:if day < 1 or day > 31:print('Illegal')returnelif mon == 2:if day < 1 or day > 28:print('Illegal')returnelif mon in [4, 6, 9, 11]:if day < 1 or day > 30:print('Illegal')returnelse:print('Illegal')return#输入的年份大于等于2018年的判断过程如下:if year >= 2018:for j in range(2018, year):if (j % 4 == 0) & (j % 100 != 0) or j % 400 == 0:  #闰年years += 366else:  #平年years += 365  #闰年天数加366天,平年加365天if ((year % 4) == 0) & ((year % 100) != 0) or ((year % 400) == 0):for i in range(mon - 1):date += list1[i]  #闰年月份按list1相加days = date + dayelse:for i in range(mon - 1):date += list2[i]  #平年月份按list2相加days = date + daytotal = days + yearsji = total % 7  #参考日期是2018年1月1号是星期一#由于"ji=0"时,输出的结果是"星期0",因此对"ji"进行了判断,使"ji=0"时输出的结果为"星期7"print(lst_days[ji])#输入的年份小于2018年的判断过程如下:else:for j in range(year + 1, 2018):if (j % 4 == 0) & (j % 100 != 0) or j % 400 == 0:years += 366else:years += 365if ((year % 4) == 0) & ((year % 100) != 0) or ((year % 400) == 0):for i in range(mon - 1, 12):date += list1[i]days = date - day + 1else:for i in range(mon - 1, 12):date += list2[i]days = date - day + 1total = days + yearsji = total % 7print(lst_days[(8 - ji)%7])for i in range(n):year, mon, day = map(int, input().split())days_of_week(year, mon, day)

040:成绩排序

描述

给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。

输入

第一行为n (0 < n < 20),表示班里的学生数目;
接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过20,成绩为一个不大于100的非负整数。

输出

把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。

样例输入

4
Kitty 80
Hanmeimei 90
Joey 92
Tim 28

样例输出

Joey 92
Hanmeimei 90
Kitty 80
Tim 28

通过码: 22dfe349d41fba121c8da151525cd8a13381dc3778b94197ec272e20eaeeaa9a

n = int(input())
a = []
for i in range(n):s = input().split()a.append((s[0],int(s[1])))
a.sort(key = lambda x:(-x[1],x[0]))
for x in a:print(x[0],x[1])

Python 中国慕课第五章测试 OpenJudge作业(包含通过码)相关推荐

  1. 《计算机应用基础》第05章在线测试,计算机应用基础.第五章测试及答案.doc

    计算机应用基础.第五章测试及答案 <计算机应用基础>第05章在线测试及答案 ?<计算机应用基础>第05章在线测试 剩余时间: 59:05 第一题.单项选择题(每题1分,5道题共 ...

  2. 智慧树/知到——程序设计基础(C语言)入门篇(第一章到第五章测试)

    第一章测试 1[单选题](10分) 下列哪一个不是C语言的的主要特点(). A.运算符丰富 B.能完成任何功能 C.数据类型丰富 D.语言简洁.紧凑.方便.灵活 参考答案:B 2[单选题](10分) ...

  3. 2022SDUT知到/智慧树----C语言第五章测试题解(答案~)大家看清顺序

    第五章测试-答案已加粗 1[判断题](10分) 在C语言中,逻辑运算符"&&"比"||"的优先级高(). A.对 B.错 参考答案:A 2[判断 ...

  4. VIO深蓝学院第五章PPT以及作业

    一. 关于LM算法的推导,视觉重投影误差以及雅可比矩阵的推导,以及常用重投影问题的搭建具体步骤参见以下网址:(属于第五章前一部分作业) LM算法推导_AutoGalaxy的博客-CSDN博客 二. 关 ...

  5. python 教程 第十五章、 结构布局

    第十五章. 结构布局 #!/usr/bin/env python #(1)起始行 "this is a module" #(2)模块文档 import sys #(3)模块导入 d ...

  6. 中国大学MOOC 人工智能导论第五章测试

    1 单选(2.5分) 以下关于状态空间图的说法错误的是 得分/总分 A. 状态之间的连接指的是衔接.转移.导致等关系 B. 状态空间图未必一定能画出来 C. 将状态和连接合在一起可以构成状态图 D. ...

  7. 零基础学Python(第十五章 日期时间datetime、time、Calendar)

    本套学习内容共计[22]个章节,每个章节都会有对应的从0-1的学习过程详细讲解,希望可以给更多的人提供帮助. 开发环境:[Win10] 开发工具:[Visual Studio 2019] 本章内容为: ...

  8. Python程序开发——第五章 函数

    目录 一.函数的定义 (一)def关键字定义函数 (二)形参和实参 (三)全局变量和局部变量 二.函数的调用 三.函数的参数传递 (一)必需参数 (二)关键字参数 (三)默认参数 (四)不定长参数 1 ...

  9. 斗地主AI算法——第十五章の测试模块

    前面几章已经把整个斗地主AI算法工程完成的差不多了,接下来进入整合联调以及模拟测试模块. 测试模块主要任务就是代替服务器给出我们需要的数据.因为我们本来的计划是封装成类库通过服务器调用获取,其调用的接 ...

  10. Python 测试驱动开发(五)测试数据库(上)

    保存用户输入:测试数据库 要获取用户输入的待办事项,发送给服务器,这样才能使用某种方式保存待办事项,然后再显示给用户查看. TDD的重要思想是必要时一次只做一件事.每次只做必要的操作,让功能测试向前迈 ...

最新文章

  1. 【HDU4497 GCD and LCM】
  2. openstack havana块存储Cinder磁盘加密方法研究
  3. 数据库自动备份还原成新库脚本
  4. 基于python渗透测试_Python中基于属性的测试简介
  5. activemq nodejs stomp 重连机制_5分钟优劣分析 Kafka、RabbitMQ、RocketMQ、ActiveMQ消息队列...
  6. java之public class和class声明区别详解 (转)
  7. openssl校验SSL证书public key是否配对
  8. Linux查看域名对应的ip地址
  9. sql in not in_SQL IN – SQL NOT IN
  10. iOS UICollectionView 注册步骤、使用方法以及 各种问题 和坑点
  11. Spring MVC @ExceptionHandler、@ControllerAdvice、@RestControllerAdvice 统一异常处理
  12. 0-Day CI : 我是Linux内核质检员
  13. 笔记:linux中tcp_tw_reuse和tcp_tw_recycle的作用
  14. 【理论】浅解硬件网络通信+交换机芯片+通信系统设计
  15. ViewPage详解
  16. 如何快速提高产品互动能力?
  17. 虚拟路由器冗余协议VRRP的基本配置【学习笔记(1)】
  18. LeetCode--初级算法--数组篇--第十题--有效的数独
  19. asp毕业设计——基于asp+sqlserver的人力资源管理系统设计与实现(毕业论文+程序源码)——人力资源管理系统
  20. html5 audio左侧,HTML5之Audio(四)—— 左右声道

热门文章

  1. 快播资源地址转百度影音地址v1.2
  2. Springboot+Vue前后端分离在线答题+题库管理系统
  3. 善用佳软推荐几个很好用的软件以备使用
  4. 【转载】士兵突击 经典语录
  5. 产品设计体会(4013)产品路标规划
  6. u盘遭受蠕虫 特洛伊木马攻击文件隐藏的解决办法
  7. 下载腾讯视频(mp4 格式)
  8. 2012最热门软件游戏下载Top搜集(热门影音,游戏,办公软件大集合)
  9. HTC手机如何进行官方解锁Unlock
  10. java前端商城_网上java商城系统前端开发基础技能浅谈