牛客网华为机试(python)

前言

牛客网华为机试(https://www.nowcoder.com/exam/oj/ta?tpId=37)
按难度分为入门,简单,中等,困难,较难五个等级

一,入门

HJ7 取近似值

n = float(input())
res = lambda x:int(x+0.5)
print(res(n))

HJ9 提取不重复的整数
提取到输入字符串后就对其进行倒置,排序时直接按ls1的顺序进行排列

ls1 = list(input()[::-1])
ls2 = list(set(ls1))
ls2.sort(key=ls1.index)
print(int(''.join(ls2)))

HJ46 截取字符串
字符串切片

str1 = input()
n = int(input())
print(str1[:n])

HJ58 输入n个整数,输出其中最小的k个
map()函数是为了初始化n,k以及列表中的str类型为int类型
最后输出的*nums[:k]是对num[:k]的解包。

n, k = map(int, input().split())
nums = sorted(list(map(int, input().split())))
print(*nums[:k])

HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序
依然是map()函数转化类型,sort()函数排序,*解包列表。

n = int(input())
ls1 = list(map(int,input().split()))
flag = int(input())
if flag == 0:
    ls1.sort()
    print(*ls1)
elif flag == 1:
    ls1.sort(reverse=True)
    print(*ls1)

二,简单

HJ1 字符串最后一个单词的长度

ls1 = input().split()
print(len(ls1[-1]
好的!下面是关于如何使用Python实现灰度图像的反色运算,并基于您提供的公式 \( T(x, y) = 255 - S(x, y) \),以下是详细的解答: --- ### 使用Python实现灰度图像的反色运算 #### 背景知识 在数字图像处理中,**灰度图像**是一种每个像素点只包含单一亮度值(通常范围为0到255)的图像形式。而“反色”操作可以看作是对原图像的逐像素反转过程,其基本思想是将每个像素的颜色强度取补码。 给定一个灰度图像 \( S(x, y) \),通过应用公式: \[ T(x, y) = 255 - S(x, y) \] 我们可以生成一张新的反色图像 \( T(x, y) \)。 在这个过程中: - 如果原始像素值为黑色 (0),则转换后变为白色 (255); - 反之亦然。 下面是一个简单的示例代码片段,展示如何利用Python库`Pillow`完成该任务: ```python from PIL import Image # 打开原始灰度图片文件并加载数据 original_image_path = 'your_grayscale_image.png' image = Image.open(original_image_path).convert('L') # 强制转成灰度模式'L' # 获取图像尺寸信息 width, height = image.size # 创建一个新的空白图像用于存储结果(初始化全黑) inverted_image = Image.new("L", [width, height]) # 遍历所有像素位置逐一计算反色效果 for x in range(width): for y in range(height): original_pixel_value = image.getpixel((x, y)) inverted_pixel_value = 255 - original_pixel_value inverted_image.putpixel((x, y), inverted_pixel_value) # 存储最终得到的结果图至磁盘上指定路径名下保存新创建出来的倒置版照片副本. output_file_name = "inverted_" + original_image_path.split('/')[-1] inverted_image.save(output_file_name) print(f"已成功生成反色图像: {output_file_name}") ``` > **注意:** 上述脚本需要提前安装好`PILLOW`(增强型版本替代了老旧标准库模块Image的功能集合体)作为依赖项才能正常运行工作起来哦! 如果您已经有一个可用环境,则只需简单替换输入输出文件即可测功能啦~ #### 进一步优化建议: 对于更高效的操作来说,在实际项目里我们往往会选择矢量化工具如NumPy来进行批量矩阵运算代替双重循环遍历来加速性能提升效率;另外也可以直接借助于现成框架里的内置函数快速达成目标需求无需手动编写繁琐逻辑步骤。 例如使用 `numpy` 和 OpenCV 库的话会更加简洁明了一些: ```python import cv2 import numpy as np # 加载灰色级图片 img_gray = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE) # 直接运用数学表达式对整个数组做变换 img_invert = 255 - img_gray cv2.imwrite('output.jpg', img_invert) ``` 这种方法避免显式的嵌套迭代访问单个元素的方式,从而显著加快速度尤其面对高分辨率大尺寸素材时优势明显体现出来。 希望这个例子能帮到你理解及实践这一有趣的小技巧呀😊
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值