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

python学习笔记之例题篇NO.3

获得用户输入的一个整数N,输出N中所出现不同数字的和。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

s = list(set(list(input())))# ①
result = 0
for i in s:result += eval(i)
print(result)

① set() 函数创建一个无序不重复元素的集合,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等,返回新的集合对象{ , }


人名最多数统计

编程模板中给出了一个字符串,其中包含了含有重复的人名,请直接输出出现最多的人名。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

s = '...字符串...'
from collections import Counter# ①
words = s.split()
c = Counter(words)# ②
print(c.most_common(1)[0][0])# ③

①Counter是一个简单的计数器;
②C 输出的字典类型:{'字符':次数,...}
most_common(n)返回一个出现次数从大到小的前 n 个元素的列表。此处是[(字符, 次数)]

方法二:

words = s.split()
counts = {}
for word in words:counts[word] = counts.get(word, 0) + 1 # ①
items = list(counts.items()) # ②
items.sort(key=lambda x: x[1], reverse=True)
print(items[0][0])

① 字典取值方式dictname.get(key, value);如果key存在返回对应的value,如果key不存在,返回None,设置的不加入字典中
dictname.items()函数以列表返回可遍历的(键值)元组数组。


给运动员打分计算总成绩排名

在文件dafen.txt中存放了12个裁判员为10名运动员的评分,现在要求编写程序,从文件中取出这些分数,每个运动员评分中去掉一个最高分和一个最低分,计算平均成绩,然后给出运动员排名;
要求输出格式: print( “第{:2d}名 {:2d}号运动员,平均分为{:6.2f}”.format(名次,运动员编号,平均分))
例如; 第 1名 7号运动员,平均分为 8.56 …(略)

def read_data():#读文件内容,返回读入的数据fp=open("src/dafen.txt")  #以默认的方式打开文件,默认‘r’,'utf-8'score = []No = 0for line in fp:No+=1x = list(map(eval, line.split())) #eval函数 接收运行一个字符串表达式,返回表达式的结果值。a,*s,b = sorted(x)score.append((sum(s)/10,No))return scoredef cal_sort_avg(p):#对运动员成绩排序,返回排序后的结果
# -------------------BEGIN------------------------p.sort(key = lambda x: (-x[0],x[1])) return p
# ------------------END------------------------def print_result(p):#输出排序结果,按格式输出最终结果
# -------------------BEGIN------------------------for i in range(len(p)):print( "第{:2d}名 {:2d}号运动员,平均分为{:6.2f}".format(i+1,p[i][1],p[i][0]))# ------------------END------------------------def main():l1=read_data() #读文件中的数据l2=cal_sort_avg(l1) #进行数据处理print_result(l2) #输出结果if __name__ == '__main__':main()

判断字符串是否数字

str.isnumeric()方法可以判断字符串str是否都是数字字符。若都是数字字符,返回true,否则返回false

获取字符在字符串的位置

使用str.find(c)方法可以返回字符串str中字符c所在位置的序号。
“2021/2/25“.find(“/“)返回数字4。
str.rfind(c)方法可以返回从尾部起,字符串str中字符c所在位置的序号。
“2021/2/25“.rfind(“/“)返回数字6。


Q4 图论问题

eg:如下图所示,G是一个无向图,其中蓝色边的长度是 11、橘色边的长度是 22、绿色边的长度是 33。则从 A 到 S 的最短距离是多少?

在这里插入图片描述

# 录入路线图
lyh_list = [["A", "E", 1],["A", "B", 2],["A", "C", 1],["A", "D", 1],["A", "E", 1],["B", "G", 1],["B", "J", 2],["C", "D", 3],["C", "G", 3],["C", "F", 3],["D", "G", 2],["D", "H", 1],["D", "I", 2],["E", "H", 1],["E", "I", 3],["F", "J", 1],["F", "G", 1],["G", "K", 2],["G", "I", 3],["H", "L", 2],["H", "I", 1],["I", "M", 3],["J", "S", 2],["K", "N", 1],["K", "L", 3],["L", "R", 1],["L", "M", 1],["M", "N", 2], ["M", "Q", 1],["M", "S", 1],["N", "P", 1],["Q", "O", 1],["O", "R", 3],["P", "O", 1],["R", "S", 1],
]#路线存储器
loads = []#寻路函数
def find(length, r):# length: 路线长度 r:节点nodefor x, y in enumerate(lyh_list):if r[1] == y[0]:length+=r[2]if y[1] == 'S':loads.append(length)else: find(length = length, r = y)for i, j in enumerate(lyh_list):if j[0] == 'A':find(length = j[2], r = j)print(min(loads))

Q5 数字三角形

在这里插入图片描述

h = int(input())list = [list(map(int, input().split())) for i in range(h)]for i in range(1,h): #从第二行开始for j in range(0,i+1):if j == 0:# 最左侧的只能是上一行最左侧的移下来的list[i][j] += list[i-1][j] elif j == i:# 最右侧的只能是上一行最右侧的移下来的list[i][j] += list[i-1][j-1]else:list[i][j] += max(list[i-1][j-1:j+1])
# print(max(list[-1]))
if h & 1:  # 如果是奇数行,则返回最中间值print(list[-1][h // 2])
else:  # 偶数行则返回中间较大值print(max(list[-1][h // 2 - 1], list[-1][h // 2]))

一定得看题,不能上来就递归或者搜索
最后一句话决定了题目性质:
向左下走的次数与向右走的次数相差不能超过1意味着:

|freq() -  freq()| = 0 or 1

② 我们把一次左移和一次右移称为对称位移,一次对称位移后,竖直方向是不变的;
freq(左)+freq(右) = 行数 ,由于①的限制,如果行数是偶数,只能是freq(左) = freq(右);如果行数是奇数,只能是|freq(左) - freq(右)| = 1
综上,所谓的最大值并不是在一堆数中选最大,实际上最大值是确定值,所以极具误导性


集合的使用

问题描述:
小蓝有 n 个单词,但是单词中有一些是重复的,请帮小蓝去除重复的单词。
输入格式
输入第一行包含一个正整数 n ,表示小蓝的单词数量。
接下来 n 行,每行包含一个由小写字母组成的单词。
输出格式
请输出去除重复后的那些单词。如果一个单词出现了多遍,请保留第一次出现的单词,去除之后出现的单词,按输入的顺序输出。
评测用例规模与约定: 对于所有评测用例,1 <= n <= 100,每个单词的长度不超过 100。


s = input()
s_ = s[::-1]def check(s):#判断是否为回文return s == s[::-1]if check(s): print(s)
else:for i in range(1, len(s)):if check(s[i:]):print(s+s_[-i:])break

一个m行n列的方格图。开始时,在方格图的左上角,即第1行第1列。可以在方格图上跳跃,跳跃时,如果当前在第r行第c列,不能跳到行号比 r小的行,也不能跳到列号比c小的列。同时,一跳的直线距离不超过 3(不能斜走)。最终要跳到第m行第n列。图中每个格子有权值。从第1行第1列跳到第m行第n列后,总的权值和最大是多少?

m, n = map(int, input().split())
lst = [[map(int, input().split())] for _ in range(m)]direct = [(0,1),(0,2),(0,3),(1,0),(1,1),(1,2),(2,0),(2,1),(3,0)]
for x in range(m):for y in range(n):res = []for dx, dy in direct:lx = x - dxly = y - dyif (lx >= 0 and ly >= 0 and lx < n and ly < m)res.append(dp[lx][ly])dp[x][y] += max(res) if len(res)!=0 else 0
print(dp[-1][-1])

相关文章:

python学习笔记之例题篇NO.3

获得用户输入的一个整数N&#xff0c;输出N中所出现不同数字的和。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬ s list(set(list(input())))# ① r…...

【Kubernetes】第七篇 - Service 服务介绍和使用

一&#xff0c;前言 上一篇&#xff0c;通过配置一个 Deployment 对象&#xff0c;在内部创建副本集对象&#xff0c;副本集帮我们创建了 3 个 pod 副本 由于 pod 存在 IP 漂移现象&#xff0c;pod 的创建和重启会导致 IP 变化&#xff1b; 本篇&#xff0c;介绍 Service 服…...

Linux 终端复用器Tmux

目录 Tmux讲解 配置tmux 配置tmux会话 配置tmux窗口&#xff08;在会话界面进行配置&#xff09; 配置tmux面板 配置窗口共享同步 Tmux讲解 RHEL5/6/7使用的是screen软件包 RHEL8使用的是tumx软件包&#xff08;功能更强大&#xff0c;更易用&#xff09; tmux的三个基本…...

Hadoop集群模式安装(Cluster mode)

1、Hadoop源码编译 安装包、源码包下载地址 Index of /dist/hadoop/common/hadoop-3.3.0为什么要重新编译Hadoop源码? 匹配不同操作系统本地库环境&#xff0c;Hadoop某些操作比如压缩、IO需要调用系统本地库&#xff08;*.so|*.dll&#xff09; 修改源码、重构源码 如何…...

PTA L1-054 福到了(详解)

前言&#xff1a;内容包括&#xff1a;题目&#xff0c;代码实现&#xff0c;大致思路&#xff0c;代码解读 题目&#xff1a; “福”字倒着贴&#xff0c;寓意“福到”。不论到底算不算民俗&#xff0c;本题且请你编写程序&#xff0c;把各种汉字倒过来输出。这里要处理的每…...

python -- 魔术方法

魔术方法就算定义在类里面的一些特殊的方法 特点&#xff1a;这些func的名字前面都有两个下划线 __new__方法 相当于一个类的创建一个对象的过程 __init__方法 相当于为这个类创建好的对象分配地址初始化的过程 __del__方法 一个类声明这个方法后&#xff0c;创建的对象如果…...

「JVM 编译优化」提前编译器

1996 年 JDK 1.0 发布&#xff0c;同年 7 月 外挂即时编译器发布&#xff08;JDK 1.0.2&#xff09;&#xff0c;而 Java 提前编译发布在之后几个月&#xff08;IBM High Performance Compiler for Java&#xff09;&#xff0c;1998 年 GNU 组织公布 GCC 家族新成员 GNU Compi…...

Golang channel 用法与实现原理

文章目录1.简介2.用法3.三种状态4.实现原理数据结构原理概述5.小结参考文献1.简介 Golang channel 是一种并发原语&#xff0c;用于在不同 goroutine 之间进行通信和同步。本质上&#xff0c;channel 是一种类型安全的 FIFO 队列&#xff0c;它可以实现多个 goroutine 之间的同…...

jackson 序列化、反序列化的时候第一个大写单词变成小写了(属性设置不成功)

参考链接:https://www.baeldung.com/jackson-annotations 遇到的问题 之前和第三方对接&#xff0c;返回的接口中的属性名称是拼音字母大写&#xff0c;奇怪&#xff0c;反序列化的时候好多字段都为空&#xff0c;没设置进去。 因为对接前&#xff0c;我先用 IntelliJ IDEA …...

如何判断机器学习数据集是否是线性的

首先,线性和非线性函数之间的区别: 左边是线性函数,右边是非线性函数。 线性函数:可以简单定义为始终遵循以下原则的函数: 输入/输出=常数。 线性方程总是1次多项式(例如x+2y+3=0)。在二维情况下,它们总是形成直线;在其他维度中,它们也可以形成平面、点或超平面。它们的…...

后端基础SQL

SQL基础语法: sql对大小写不敏感&#xff0c;eg: SELECT 等效于 select&#xff1b;select: select用于从表中查找数据&#xff0c;select 列名 from 表名 —> 结果集:&#xff1a;仅有查询列的结果表&#xff1b; SELECT * FROM 表名称 ----> 结果集: 查找表的所有数据…...

Ubuntu 18.04 上编译和安装内核(内核源码版本)

Ubuntu 18.04 上编译和安装内核&#xff08;内核源码版本&#xff09; linux发行版本为&#xff0c;ubuntu18.04。内核版本为5.15.7。其他版本类似。 1.下载内核源代码。可以从官方网站下载最新的内核源代码&#xff0c;也可以使用 Git 命令从 Linux 内核的 Git 仓库中获取最新…...

day 53|● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划

1143. 最长公共子序列 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些…...

运维工程师必知的十项Linux常识

1、GNU和GPL GNU计划&#xff08;又称革奴计划&#xff09;&#xff0c;是由Richard Stallman&#xff08;理查德斯托曼&#xff09;在1983年9月27日公开发起的软件集体协作计划。它的目标是创建一套完全的操作系统。GNU也称为软件工程项目。GPL是GNU的通用公共许可证&#xf…...

C++ 11 之右值引用和移动语义

文章目录左值引用与右值引用1、左值与右值2、纯右值、将亡值3、左值引用与右值引用4、右值引用和 std::move 使用场景引用限定符移动语义—std::move()完美转发emplace_back 减少内存拷贝和移动总结c11中引用了右值引用和移动语义&#xff0c;可以避免无谓的复制&#xff0c;提…...

【第一章:Spring概述、特点、IOC容器、IOC操作bean管理(基于xml方式)】

第一章&#xff1a;Spring概述、特点、IOC容器、IOC操作bean管理&#xff08;基于xml方式&#xff09; 1.Spring是什么&#xff1f; ①Spring是一款主流的java EE 轻量级开源框架。 ②广义的Spring&#xff1a;Spring技术栈&#xff0c;Spring不再是一个单纯的应用框架&#x…...

CSS变量

前端的开发工作中&#xff0c;CSS 是不可或缺的部分&#xff1b;实际工作中&#xff0c;我们通过JavaScript 来进行数据和交互工作&#xff0c;CSS 为用户呈现可视化的界面。有时&#xff0c;CSS 来进行部分交互效果是不是会比 JavaScript 更高效、更省事呢&#xff1f; 一、变…...

.net7窗口编程c#2022实战(1)-zip压缩精灵(1)

目录 创建ZIP精灵项目拖控件OpenFileDialog 类压缩与解压缩编写我们自己的代码其它参考内容创建ZIP精灵项目 VS2022中新建项目。 为窗体取一个标题名称 拖控件 左边工具栏里选择控件 拖三个按钮控件和一个listbox控件...

云计算|OpenStack|使用VMware安装华为云的R006版CNA和VRM

前言&#xff1a; FusionCompute架构 (CNA、VRM) CNA(ComputingNode Agent):计算节点代理VNA虚拟节点代理&#xff0c;部署在CNA上&#xff0c;实施计算、存储、网络的虚拟化的配置管理。VRM(Virtual Resource Manager):虚拟资源管理器 VNA可以省略不安装 本次实验使用的是V…...

中央一号文件首提“即时零售”,县域掀起消费业态新风潮

经过几年的探索&#xff0c;即时零售已经逐步走向成熟&#xff0c;并开始向三四线城市以及乡镇城市渗透。 过去一年&#xff0c;京东、美团、阿里争先布局即时零售市场&#xff0c;完善即时配送网络、培养用户消费习惯&#xff0c;即时零售订单迎来了骤增。2022年下半年&#…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

node.js的初步学习

那什么是node.js呢&#xff1f; 和JavaScript又是什么关系呢&#xff1f; node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说&#xff0c; 需要在node.js的环境上进行当JavaScript作为前端开发语言来说&#xff0c;需要在浏览器的环境上进行 Node.js 可…...

react更新页面数据,操作页面,双向数据绑定

// 路由不是组件的直接跳转use client&#xff0c;useEffect&#xff0c;useRouter&#xff0c;需3个结合&#xff0c; use client表示客户端 use client; import { Button,Card, Space,Tag,Table,message,Input } from antd; import { useEffect,useState } from react; impor…...

【Axure高保真原型】图片列表添加和删除图片

今天和大家分享图片列表添加和删除图片的原型模板&#xff0c;效果包括&#xff1a; 点击图片列表的加号可以显示图片选择器&#xff0c;选择里面的图片&#xff1b; 选择图片后点击添加按钮&#xff0c;可以将该图片添加到图片列表&#xff1b; 鼠标移入图片列表的图片&…...

【仿生机器人】刀剑神域——爱丽丝苏醒计划,需求文档

仿生机器人"爱丽丝"系统架构设计需求文档 一、硬件基础 已完成头部和颈部硬件搭建 25个舵机驱动表情系统 颈部旋转功能 眼部摄像头&#xff08;视觉输入&#xff09; 麦克风阵列&#xff08;听觉输入&#xff09; 颈部发声装置&#xff08;语音输出&#xff09…...

C++ 使用 ffmpeg 解码 rtsp 流并获取每帧的YUV数据

一、简介 FFmpeg 是一个‌开源的多媒体处理框架‌&#xff0c;非常适用于处理音视频的录制、转换、流化和播放。 二、代码 示例代码使用工作线程读取rtsp视频流&#xff0c;自动重连&#xff0c;支持手动退出&#xff0c;解码并将二进制文件保存下来。 注意&#xff1a; 代…...