华为机试-入门(Python)

embedded/2024/9/24 12:15:05/

牛客/华为机试/题库/在线编程
开发技巧:反向思维、先易后难、先死后活
puthon开发文档 教程-语法特性/库参考-标准库与内置对象/语言参考-内置函数
提示:满足题目输入输出条件,input()中不必有提示语,否则在线编辑器会将提示语算作实际输出,导致结果错误。

入门

HJ7 取近似值

题目

描述
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。
数据范围:保证输入的数字在 32 位浮点数范围内
输入描述:
输入一个正浮点数值
输出描述
输出该数值的近似整数值

解答

python">fvalue = (float)(input())
if fvalue % 1 >= 0.5:ovalue = (int) (fvalue // 1) + 1
else:ovalue = (int) (fvalue // 1)
print(ovalue)

时间:22ms 内存:4500+KB

知识点

基础数学、语法

键盘输入语句

str = input() 从键盘输入读取一行数据,返回字符串

浮点数
  • python支持三种不同的数值类型,整型int、浮点型float、复数complex。
    其中浮点型由整数部分与小数部分组成,分为32位单精度浮点数和64位双精度浮点数。
    32位单精度浮点数:1位符号位表示正负;8位指数位表示指数;23位尾数位标识有效数字
显示类型转换

int(x) 向下取整
float(x) 将整数或字符串转换为浮点数

算数运算符

% 取模,返回除法的余数部分
// 取整,返回除法的整数部分

解答改进

思路:1 将读取的字符串转为浮点数
2 四舍五入:浮点数+0.5后向下取整

python">f = (float)(input())
print(int(f + 0.5))

HJ9 提取不重复的整数

题目

描述
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是 0 。
数据范围: 1≤𝑛≤10^8
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数

解答

python">s = input() # 1 读取输入整数
# 2 倒叙读取不重复的元素
ns = '' # 创建空字符串,用于准备输出数据
list = list("0000000000") # 创建10位数组
for c in s[::-1]: # 从可迭代的倒序字符串依次读取元素if list[int(c)] == '0': # 用10位数组表示每个数字是否出现过,若为0表示还没出现过list[int(c)] = '1' # 将数组中元素置为1,表示这位下标数值已初选else:continue # 若已出现过,则结束本轮循环,继续执行下次循环,break表示结束整个for循环ns += c # 新序列添加未重复出现的元素
print(int(ns))

知识点

数组、哈希

列表/数组

创建列表/数组:无法直接根据元素数量创建,可使用表达式[x for x in iterable]、使用类型的构造器list()list(iterable)
创建多位数组:print([0] * 10)

字符串

创建字符串:'' "" 'xxx' "abc"
len(str) 返回字符串长度

切片

序列[起始索引:结束索引:步长]从一个序列中取出前闭后开的子序列,形成一个新序列

for循环

遍历可迭代对象

python">for <variable> in <sequence>:<statements>
else:<statements>

解答改进

python">s = input()
ns = ''
for c in s[::-1]:if c not in ns: # 判断元素是否存在待输出内容中即可ns += c
print(int(ns))

HJ46 截取字符串

题目

描述
输入一个字符串和一个整数 k ,截取字符串的前k个字符并输出
数据范围:字符串长度满足 1≤𝑛≤1000,1≤k≤n
输入描述:
1.输入待截取的字符串
2.输入一个正整数k,代表截取的长度
输出描述:
截取后的字符串

解答

python">s = input()
k = int(input())
print(s[:k])

HJ58 输入n个整数,输入其中最小的k个

题目

描述
输入n个整数,找出其中最小的k个整数并按升序输出
本题有多组输入样例
数据范围:1≤n≤1000 ,输入的整数满足 1≤val≤10000
输入描述:
第一行输入两个整数n和k
第二行输入一个整数数组
输出描述:
从小到大输出最小的k个整数,用空格分开。
示例:
输入:16 8
2163 7241 7053 8161 2847 5214 60 1386 4089 2448 3747 9573 3113 6155 7659 713
输出:60 713 1386 2163 2448 2847 3113 3747

解答

python">[n, k] = input().split() # split()默认空格切割
l = input().split() # 数组元素是字符串
nl = list(map(int, l)) # 将列表中字符串元素转换成整数
nl.sort() # 默认升序
for c in nl[:int(k)]:print(c, end=" ") # end以空格结尾

知识点

map()

map(function, iterable, ...) 返回每个元素按函数映射的迭代器

HJ101 输入整型数组和

题目

描述
输入整型数组和排序标识,对其元素按照升序或降序进行排序
数据范围: 1≤n≤1000 ,元素大小满足 0≤val≤100000
输入描述:
第一行输入数组元素个数
第二行输入待排序的数组,每个数用空格隔开
第三行输入一个整数0或1。0代表升序排序,1代表降序排序
输出描述:
输出排好序的数字

解答

python">n = input()
l = list(map(int, input().split())) # 若不把字符串元素转换成数值,列表排序时会按照字符串大小比较
t = int(input())
if t == 0:l.sort()
else:l.sort(reverse=True)
for c in l:print(c, end=" ")

http://www.ppmy.cn/embedded/27076.html

相关文章

云计算和边缘计算究竟有什么不同

在数据时代&#xff0c;无论是人的活动还是机器的运作都会产生各种各样海量的数据。在对数据梳理和筛选过程中&#xff0c;计算机的运算处理必不可少。为了减少本地计算机算力成本等限制&#xff0c;越来越多的企业选择了云计算和边缘计算。今天&#xff0c;德迅云安全就带您来…

DevEco安装后卡死解决方案【鸿蒙开发Bug已解决】

文章目录 项目场景:问题描述原因分析:解决方案:其他解决方案此Bug解决方案总结Bug解决方案寄语项目场景: 最近也是遇到了这个问题,看到网上也有人在询问这个问题,本文总结了自己和其他人的解决经验,解决了【DevEco安装后卡死解决方案】的问题。 问题描述 安装完成最新…

迪拜之行回顾:CESS 的 DePIN 创新之旅

迪拜最近是一个关键热词&#xff0c;成为了一系列 Web3 和加密活动的中心&#xff0c;吸引了行业领导者、创新者和爱好者&#xff0c;探索区块链和去中心化技术的最新发展。从 4 月中旬&#xff0c;一系列行业会议和活动陆续举行&#xff0c;吸引了一众与会者。然而暴雨积水又成…

docker安装【zookeeper】【kafka】【provectuslabs/kafka-ui】记录

目录 1.安装zookeeper:3.9.2-jre-172.安装kafka:3.7.03.安装provectuslabs/kafka-ui &#xff08;选做&#xff09;新环境没有jdk&#xff0c;安装jdk-17.0.10备用 mkdir -p /export/{data,apps,logs,conf,downloads}cd /export/downloadscurl -OLk https://download.oracle.…

Eclipse 安装 lombok 和配置

如 Eclipse 不配置的话&#xff0c;是没有办法编译 lombok 项目的。 下载 Jar 如果你项目使用的是 maven&#xff0c;那么 jar 应该下载下来了。 到 pom.xm 文件中找到有关 lombok 的依赖。 <dependency><groupId>org.projectlombok</groupId><artifac…

PHP深入探索:面向对象编程与设计模式实战

摘要 PHP作为一种广泛应用于Web开发的服务器端脚本语言,其面向对象编程(OOP)特性与设计模式的应用,对于构建可维护、可扩展的高质量应用系统至关重要。本文旨在深入探讨PHP中的OOP概念,通过实战案例展现如何有效地结合设计模式,解决开发中的常见问题,提升代码的复用性和…

集成测试如何做?

今天学习下如何进行集成测试。 什么是集成测试? 集成测试被定义为一种测试类型&#xff0c;其中软件模块在逻辑上集成并作为一个组进行测试。一个典型的软件项目由多个软件模块组成&#xff0c;由不同的程序员编码。此级别测试的目的是在集成这些软件模块时&#xff0c;暴露…

如何动态标红前端表格中的异常数据

文章目录 最终效果&#xff1a;实现思路&#xff1a;一、表格数据标红二、弹出框中数据标红 最终效果&#xff1a; 实现表格中&#xff0c;查看详情、修改弹出框的异常数据标红 实现思路&#xff1a; 整体的思路就是&#xff0c;表中有一个&#xff0c;异常信息字段&#xff…