python_蓝桥杯刷题记录_笔记_全AC代码_入门3

news2024/11/29 4:42:03

前言

        记录我的解法以及笔记思路,谢谢观看。

题单目录

1.P2141 [NOIP2014 普及组] 珠心算测验

2.P1567 统计天数

3.P1055 [NOIP2008 普及组] ISBN 号码

4.P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here

5.P1308 [NOIP2011 普及组] 统计单词数

6.P1047 [NOIP2005 普及组] 校门外的树

7.P1046 [NOIP2005 普及组] 陶陶摘苹果

8.P1553 数字反转(升级版)

9.P1598 垂直柱状图


1.P2141 [NOIP2014 普及组] 珠心算测验

        这一道题我是有参考网上的一个大佬的思路来的,但是那个大佬的代码只有两行,很显然我现在的能力达不到就写成了我自己能够理解的样子。

        那python有一个容器是集合,关于python中集合的定义跟数学其实差不多,第一次的写的时候没有注意到题目中说得加数与被加数要不相同,所以无法通过。

        然后我又开始一直纠结怎么解决,增加了好多判断条件,然后看到大佬直接用集合就可以解决了,所以这个方法一定要记住。

        其次,这个大佬还用到了集合的一个函数方法,就是交集,总之思路真的很绝。

intersection() 方法:

        用于返回两个或更多集合中都包含的元素,即交集。

intersection() 方法语法:

        set.intersection(set1, set2 ... etc)

n = int(input())
l = set(map(int,input().split(' ')))
s = []
count = 0
for i in l:
    for j in l:
        if i!=j:
            s.append(i+j)
s = set(s)
count = len(s.intersection(l))
print(count)

2.P1567 统计天数

循环外层必须再要加一个判断,不然就会有一个测试点过不了。

输入:

2

1 2

输出:

不加外层循环输出的是1,但是其实我们知道结果是2

因为在天数一直都处于增加的状态的时候,到最后一天的时候就直接跳出了循环。并不会执行else。

n = int(input())
l = list(map(int,input().split(' ')))
count = 0
flag = 1
last = 0
for i in l:
    if i > last:
        count += 1
    else:
        if count > flag:
            flag = count
        count = 1
    last = i
if count > flag:
    flag = count
print(flag)

3.P1055 [NOIP2008 普及组] ISBN 号码

 这道题一开始我想着得是用字符串去做,后来发现很不方便,就是在修改字符串的数值方面远不如列表,换用上了列表就方便很多了。

s = list(input())
flag = 0
count = 1
for i in range(len(s)-1):
    if i!=1 and i!=5 and i!=11:
        flag += int(s[i])*count
        count += 1
num = flag%11
if num == 10:
    num = 'X'
if str(num) == s[-1]:
    print('Right')
else:
    s[-1] = str(num)
    for i in s:
        print(i,end='')

4.P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here

 这道题就是关于字母转为ascii数字的问题,要用到一个函数。ord函数。可以直接将字符串转为数字。

ord() 函数:

返回对应的 ASCII 数值

l1 = list(input())
l2 = list(input())
result1 = 1
result2 = 1
for i in l1:
    result1 *= (ord(i)-ord('A'))+1
for i in l2:
    result2 *= (ord(i)-ord('A'))+1
if result1%47 == result2%47:
    print('GO')
else:
    print('STAY')

5.P1308 [NOIP2011 普及组] 统计单词数

这道题的解法我是看了一个大佬的代码,因为我自己实在是写不出来,大佬的思路简直就是我无法想到的,非常值得学习。大佬还贴心写出来了注释,很好看懂。

s1=input()#输入要查询的单词
s1=s1.upper()#将单词转成大写
x=len(s1)#s1字符串的长度
s2=input()#输入文章
s3=[]#s3每次提取文章的一个单词
y=len(s2)#s2字符串长度
sum=0#sum记录单词出现在文章中的次数
begin=-1#begin记录单词第一次出现在文章中的位置
for i in range(y):
    if(s2[i]!=' '):
        s3.append(s2[i].upper())#将一个完整的单词放入s3中
    else:
        if(list(s1)==s3):#比较单词和s3所储存的单词是否相同
            sum+=1#如果相同次数加一
            if(begin==-1):#首次出现特定单词
                begin=i-x#首次出现的位置
        s3.clear()#清空准备下一个单词
if(sum>0):
    print(sum, begin)
else:
    print(-1)#未查询到输出-1

6.P1047 [NOIP2005 普及组] 校门外的树

 这道题就是运用了集合中元素的互异性。

l,m = map(int,input().split(' '))
a = []
for i in range(m):
    u,v = map(int,input().split(' '))
    for i in range(u,v+1):
        a.append(i)
a = set(a)
print(f'{l - len(a)+1}')

7.P1046 [NOIP2005 普及组] 陶陶摘苹果

l = list(input().split(' '))
h = int(input())
count = 0
for i in l:
    if h+30 >= int(i):
        count += 1
print(count)

8.P1553 数字反转(升级版)

        这道题写出100分实在是太难了,在下载了洛谷提供的多次数据之后终于全部 AC,因为情况很多,所以必须得考虑得/十分仔细。其实这道题的思路就是比较简单的,分不同情况进行处理,但是本质上都是对整数的处理。最难的情况是小数,因为在数字进行反转的时候0不能在开头,对于小数点的前一部分的反转,直接转变为Int之后就不用考虑那些0,但是对于小数点后面的数字就比较麻烦,这个时候就需要重新寻找pos的数值。但是这个时候我们必须考虑到如果小数点的右边只有一个0,按照我的那个方法是会报错的,所以我加了一个try语法就解决了。

find函数:

如果包含子字符串返回开始的索引值,否则返回-1。

s = input()
if '.' in s:
    pos = s.find('.')
    s1 = ''
    s2 = ''
    s3 = ''
    for i in range(0,pos):
        s1 +=s[pos-i-1]
    print(int(s1),end='')
    print('.',end='')
    try:
        for i in range(pos+1,len(s)):
            if s[i] != '0':
                pos2 = i
                break
        for j in range(len(s)-1,pos2-1,-1):
            s3 += s[j]
        print(int(s3))
    except:
        print("0")
elif '/' in s:
    pos = s.find('/')
    s1 = ''
    s2 = ''
    for i in range(0, pos):
        s1 += s[pos - i - 1]
    print(int(s1),end='')
    print('/', end='')
    for j in range(len(s) - 1, pos, -1):
        s2 += s[j]
    print(int(s2))
elif '%' in s:
    pos = s.find('%')
    s1 = ''
    for i in range(0, pos):
        s1 += s[pos - i - 1]
    print(int(s1), end='')
    print('%', end='')
else:
    s1 = ''
    for i in range(0,len(s)):
        s1 += s[len(s)-i-1]
    print(int(s1))

9.P1598 垂直柱状图

         简单来说一下这道题我做的思路,首先我们要算出26个字母出现的次数,然后存入一个列表,仔细观察打印的格式,我们需要关注打印多少行是由什么决定的,最后我们发现,打印的行数与出现次数的最大值有关,于是我们通过找到出现次数的最大值来决定打印的行数。接着就是如何打印出格式出来,这个就比较简单就是次数问题,那需要注意的就是最后一个打印出来的没有空格。

chr函数:

返回值是当前整数对应的 ASCII 字符。

ls = ''
for i in range(4):
    s = input()
    ls += s.replace(' ','')
ls = ls.replace('.','')
ls = ls.replace('!','')
var = 'A'
l = []
for i in range(26):
    temp = chr(ord(var) + i)
    num = ls.count(temp)
    l.append(num)
Max = max(l)
for i in range(Max):
    for j in range(len(l)):
        if l[j] >= (Max-i):
            if j != len(l)-1:
                print("*",end=' ')
            else:
                print("*")
        else:
            if j != len(l) - 1:
                print(" ", end=' ')
            else:
                print(" ")

for i in range(26):
    if i != 25:
        print(f'{chr(ord(var)+i)}',end=' ')
    else:
        print(f'{chr(ord(var) + i)}')

10.总结

继续加油!!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1432462.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes的有状态应用示例:用PV部署WordPress和MySQL

文章目录 环境PVC和PV创建PVC和PV 创建kustomization.yaml添加secret生成器 为MySQL和WordPress添加资源配置部署和验证清理参考 环境 RHEL 9.3Docker Community 24.0.7minikube v1.32.0 PVC和PV PersistentVolume(PV)是在集群里由管理员手动provisio…

Python爬虫urllib详解

前言 学习爬虫,最初的操作便是模拟浏览器向服务器发出请求,那么我们需要从哪个地方做起呢?请求需要我们自己来构造吗?需要关心请求这个数据结构的实现吗?需要了解 HTTP、TCP、IP 层的网络传输通信吗?需要知…

vue3 之 组合式API—computed

computed计算属性函数 计算属性基本思想和Vue2的完全一致&#xff0c;组合式API下的计算属性只是修改了写法 核心步骤&#xff1a; 导入computed函数执行函数 在回调参数中return基于响应式数据做计算的值&#xff0c;用变量接收 vue <script setup> // 1.导入compute…

【数据分享】1929-2023年全球站点的逐年降雪深度数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 之前我们分享过1929-2023年全球气象站点的逐年平均气温数据、逐年最高气温数据…

TypeScript实战系列之强力爆破泛型的困扰

目录 介绍开始如何理解泛型语法泛型约束泛型默认值练习后续 介绍 泛型在typescript 中使用频率相当高&#xff0c;也给了初学者相当大的阻碍。希望这一篇文章&#xff0c;能帮助你们爆破它。 开始 下面通过模拟实现一个简易版本的axios来引入泛型的使用 // axios.ts type M…

10秒部署好 Serverless Web,我只告诉你一个人

谁还不知道Serverless&#xff1f; 上个月亚马逊云科技 re:Invent大会第一个演讲主题就是它。 每一个新技术概念的引入都伴随着生产力的提高&#xff0c;Serverless指的是一种构建和运行不需要服务器管理的应用程序的概念。 一个很有用的技术&#xff0c;这篇文章带你入门。…

alibabacloud学习笔记05(小滴课堂)

高并发下的微服务存在的问题 高并发下的微服务容错方案 介绍什么是分布式系统的流量防卫兵Sentinel 微服务引入Sentinel和控制台搭建 每个服务都加上这个依赖。 启动方式&#xff1a; 讲解AliababCloud微服务整合Sentinel限流配置实操 我们在order和video模块都加上。 分别启动…

网站接入QQ登录

开发者认证&#xff0c;创建应用&#xff1a; &#xff08;1&#xff09;先在 QQ 互联 QQ互联管理中心 进行个人开发者认证&#xff0c;并审核 &#xff08;2&#xff09;创建【网站应用】&#xff0c;填写正确信息&#xff0c;获得对应的 appid 与 appkey&#xff0c;并审核…

Redis——SpringBoot整合Redis实战

1、基本配置 1.1、引入依赖 首先&#xff0c;建立Maven项目&#xff0c;在Maven项目中引入pom.xml文件&#xff1a; <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> &l…

【HarmonyOS应用开发】后台提醒(十六)

简述 随着生活节奏的加快&#xff0c;我们有时会忘记一些重要的事情或日子&#xff0c;所以提醒功能必不可少。应用可能需要在指定的时刻&#xff0c;向用户发送一些业务提醒通知。例如购物类应用&#xff0c;希望在指定时间点提醒用户有优惠活动。为满足此类业务诉求&#xf…

机器学习 | 解析聚类算法在数据检测中的应用

目录 初识聚类算法 聚类算法实现流程 模型评估 算法优化 特征降维 探究用户对物品类别的喜好细分(实操) 初识聚类算法 聚类算法是一种无监督学习方法&#xff0c;用于将数据集中的对象按照相似性分组。它旨在发现数据中的内在结构和模式&#xff0c;将具有相似特征的数据…

Photoshop CS6 下载安装教程,保姆级教程,小白也能轻松搞的,附安装包

前言 Adobe Photoshop CS6强大的照片拍摄和突破性的新功能&#xff0c;用于复杂的图形、选择、逼真的绘画和装饰智能。创建惊人的高动态范围(HDR)图像。用逼真的笔触和混合的颜色绘画。消除噪音&#xff0c;添加种子&#xff0c;并绘制一个国家最先进的摄影设备的草图。凭借原…

【HarmonyOS应用开发】ArkUI 开发框架-进阶篇-Video组件的使用(十)

一、Video组件的使用 1、概述 在手机、平板或是智慧屏这些终端设备上&#xff0c;媒体功能可以算作是我们最常用的场景之一。无论是实现音频的播放、录制、采集&#xff0c;还是视频的播放、切换、循环&#xff0c;亦或是相机的预览、拍照等功能&#xff0c;媒体组件都是必不可…

MacBook有必要装清理软件吗?CleanMyMac的一些主要特点

MacBook是苹果公司的一款高端笔记本电脑&#xff0c;但是&#xff0c;随着使用时间的增长&#xff0c;MacBook也会出现一些问题&#xff0c;比如运行缓慢、卡顿、垃圾文件堆积、磁盘空间不足等。这些问题不仅影响了用户的使用体验&#xff0c;也可能对MacBook的寿命和安全性造成…

Shell脚本⑧免交互

目录 一.Here Document 1.定义 2.变量 &#xff08;1&#xff09;变量替换成实际值 &#xff08;2&#xff09;整行内容作为变量并输出结果 &#xff08;3&#xff09;多行注释 &#xff08;4&#xff09;自动划分磁盘免交互 二.Expect 1.定义 2.安装 3.免交互操作 …

django线上教育学习平台大数据分析系统python

随着互联网技术不断地发展&#xff0c;网络与大数据成为了人们生活的一部分&#xff0c;而线上教育平台大数据分析作为网上应用的一个全新的体现&#xff0c;由于其特有的便捷性&#xff0c;已经被人们所接受。目前主流的线上教育平台大数据分析服务不仅不明确并且管理盈利较低…

基于STM32的UART/USART数据传输的错误检测和纠错机制研究

在STM32微控制器中&#xff0c;UART/USART模块的数据传输可以通过错误检测和纠错机制来提高数据的可靠性。下面将介绍一些常用的错误检测和纠错机制&#xff0c;并提供一个示例代码来演示如何使用这些机制。 ✅作者简介&#xff1a;热爱科研的嵌入式开发者&#xff0c;修心和技…

SpringCloud-微服务概述、SpringCloud入门概述、服务提供与消费

1.学习前言 1.1 学习前提 熟练使用SpringBoot 微服务快速开发框架了解过Dubbo Zookeeper 分布式基础电脑配置内存不低于8G 1.2 文章大纲 Spring Cloud 五大组件 服务注册与发现——Netflix Eureka负载均衡&#xff1a; ​ 客户端负载均衡——Netflix Ribbon ​ 服务端负载…

Oracle喊你领取免费AI 助理级证书啦!

拿证秘籍如下&#xff1a; 1. 登录Oracle的考试中心网站&#xff1a;https://education.oracle.com/certification 2. 选择AI 助理级考试&#xff0c;考试代码&#xff1a;1Z0-1122-23&#xff0c;也可以点击这里直达 3. AI学习视频免费看&#xff0c;也可以选择不看 3.5 去…

一台机器上如何部署多个web项目

1、综述 随着计算机硬件水平的不断提高&#xff0c;往往不是一台机器上只部署一个web项目了&#xff0c;而是尽可能多部署几个项目&#xff0c;以用来节省资源&#xff0c;现在我们看看如何一台机器部署多个项目&#xff0c;我们先结合上一篇文章中提到的tomcat架构&#xff0…