当前位置: 首页 > news >正文

Py一阶段习题汇总

目录

题一:评分系统

题二:春游

题目三:字符串修剪与排序

题目四:进制转换

题目五:田忌赛马


题一:评分系统

s=input()
answer="DCBAD"#注意这就是标答 不是自定义标准答案
count=0
for i in range(5):
    if s[i]==answer[i]:#字符串一一比较
        count+=30
print(count)

题二:春游

实例解释:

第一行:输入的分别是 3个同学,报数了3次

第二行是:报数从0开始 如果从[0,n-1]都报数了就输出 同学的个数(也就是3)

那如果在示例2里,统计没有报数的个数。也就是遍历看[0,n-1]哪些没有被报数则计数器+1

n,m=map(int,input().split())
l=list(map(int,input().split()))
set1=set(l) #用集合去重 把调皮孩子多报的数剔除出去
l1=[]
if len(set1)==n:
    print(n)

else:
    for i in range(n):
        if i not in set1:
            l1.append(i)
    print(' '.join(map(str,l1)))#规定输出格式

题目三:字符串修剪与排序

怎么去掉最后一个字符:

用字符串切片string[ i ][:-1]

按字符长度进行排序: l.sort(key=len)

sort排序总结

 代码:

N=int(input())
l=input().split()#字符串 后面用字符串切片
for i in range(N):
    l[i]=l[i][:-1]#字符串切片,删除最后一个字母的字符串
l.sort(key=lambda x:len(x))
print(' '.join(l))
N = int(input())
strs = input().split()
# 排序,key取len即可
strs.sort(key=len)
# 输出,通过切片的方式去掉最后一个字符
for i in strs:
    print(i[:-1], end=' ')

 题目四:进制转换

示例解释:
第一行是要进制转的数字,也就是把123进行进制转换

第二行是R=25,也就是进行25进制的转换

那么思路就是将123%25 存储,直至123//25==0时结束循环 最后逆序输出

需要注意的是存储格式转化为字符存 大于等于10的用A-Z进行存储

N=int(input())
R=int(input())
#N用R进制实现转换
digit=[]
if N==0:
    print(0)
else:
    while N:
        if (N%R)<10:
            digit.append(str(N%R))
        else:
            digit.append(chr(N%R-10+ord('A')))
        N=N//R
    # 余数是倒序排列的,需要反转
    print(''.join(reversed(digit)))

题目五:田忌赛马

田忌赛马贪心版题解

解题思路:
用自己的中等马KO田忌的下等马

用自己的上等马KO田忌的中等马

用自己的下等马KO田忌的上等马

注意每次我们的马参赛完要remove移除掉

N = int(input())
u = list(map(int, input().split()))
v = list(map(int, input().split()))

win = 0
# 马升序排序
u.sort()
v.sort()
# 遍历田忌的马
for i in v:
    # 在我们的马中找出能胜过它的马
    for j in u:
        if j > i:
            win += 1
            # 这匹马使用过后,就移除
            u.remove(j)
            break
print(win)

防止时间复杂度过高,单层循环: 

田忌的马每次比较都是向后移动 而我们会轮到下等马因此是轮回还是需要循环。

#单层循环实现
n=int(input())
u=list(map(int,input().split()))  #我的马匹速度
v=list(map(int,input().split())) #田忌的马匹速度
u.sort()
v.sort()

a=0 #表示田忌的参赛马匹索引
win=0
for i in u:   #遍历我的马匹
    if i>v[a]:  #当我的马可以赢过田忌的马
        win+=1
        a+=1  #田忌的参赛马匹索引后移 
print(win)

相关文章:

  • 微型导轨的制造工艺中,热处理的目的是什么?
  • 202521 | 远程调用 | 注册中心
  • Go语言-初学者日记(六) 并发编程
  • Nginx-keepalived-高可用
  • cpp经典数论问题
  • celsius与Fahrenheit
  • C++ STL 详解 ——list 的深度解析与实践指南
  • leetcode120.三角形最小路径
  • 小刚说C语言刷题——第16讲 switch语句
  • C++11详解
  • Spring Boot 与 TDengine 的深度集成实践(三)
  • 利用C++编写操作OpenCV常用操作
  • 编程速递-Delphi is 30 Delphi诞生30周年!
  • MySQL-SQL-DQL语句、DQL基本查询、DQL条件查询、DQL分组查询、聚合函数、DQL排序查询、DQL分页查询
  • 【勒让德公式】欧拉筛-阶乘分解
  • 【硬件开发技巧】如何通过元器件丝印反查型号
  • vector模拟实现(2)
  • 蓝桥杯2024年第十五届省赛真题-拔河
  • 专栏:区块链入门到放弃查看目录
  • el-tabs添加按钮增加点击禁止样式
  • 做跨国婚恋网站赚钱吗/湖南关键词网络科技有限公司
  • 深圳响应式网站建设公司/东莞推广
  • 有域名了如何做网站/如何制作个人网站
  • 龙之向导外贸网址/seo快速建站
  • 自己做公司网站简单吗/微信运营方案
  • 机电工程栏建设项目网站建设/线上推广100种方式