华为OD试题五(数列描述、矩阵最大值、数据分类)

news/2024/7/20 17:15:56 标签: 华为od, 矩阵, python

1. 数列描述

在这里插入图片描述
在这里插入图片描述
示例代码:

python"># 核心 从第一项 推 第N项目
# 第一项
a0 = '1'
# 推到 第N项
N = 4
def fun(a0):
	# 计算每一项的具体值
	result = ''
	left = 0
	cursor = 0
	while cursor < len(a0):
		if a0[cursor] != a0[left]:
			count = cursor -left
			result += "{}{}".format(str(count),a0[left])
			left = cursor
		cursor += 1
	count = cursor - left
	result += "{}{}".format(str(count),a0[left])
	return result

def fun1(a0,N):
	i = 1
	res = None
	# 逐项推导
	while i <= N:
		# 具体推导每一项的值
		res = fun(a0)
		a0 = res
		i += 1
	return res
	
r = fun1(a0,4)
print(r)

2. 矩阵最大值

题目描述:

在这里插入图片描述
在这里插入图片描述
示例代码:

python">N = 5
s = [
    '1,0,0,0,1',
    '0,0,0,1,1',
    '0,1,0,1,0',
    '1,0,0,1,1',
    '1,0,1,0,1'
] 

def fun1(s1,s2):
	r1 = int(s1,2)
	r2 = int(s2,2)
	return r1 if r1 > r2 else r2

def fun(s,N):
	n = 1
	result = []
	while n <= N:
		# 移一位
		if n % 2 == 1:
			s_list = s[n - 1].split(',')
			# 左移一位
			left1 = ''.join(s_list[1:]) + s_list[0]
			# 右移一位
			right1 = s_list[-1] + ''.join(s_list[:-1])
			# 添加左移一位 和 右移一位 的最大值
			result.append(fun1(left1,right1))
		# 移两位
		else:
			s_list = s[n - 1].split(',')
			# 左移二位
			left2 = ''.join(s_list[2:] + s_list[0:2])
			# 右移二位
			right2 = ''.join(s_list[-1:-3:-1] + s_list[:-2])
			# 添加左移二位 和 右移二位 的最大值
			result.append(fun1(left2,right2))
		n += 1
	return sum(result)

r = fun(s,N)
print(r)

3. 数据分类

在这里插入图片描述
在这里插入图片描述
示例代码:

python"># 测试数据
s1 = 3
ss1 = 4
sss1 = [256, 257, 258, 259, 260, 261, 262, 263, 264, 265]
tmp_dict = {'a': 10, 'b': 11, 'c': 12, 'd': 13, 'e': 14, 'f': 15}
def fun(num):
	# 计算十六进制数 各位数之和
	num_str = hex(num)[2:]
	tmp = [tmp_dict[_] if _ in tmp_dict else int(_) for _ in num_str]
	return sum(tmp)

def fun1(s,ss,sss):
	tmp_list = [fun(_) for _ in sss]
	tmp1_list = [_ % ss for _ in tmp_list]
	res = []
	for i in range(s):
		res.append(tmp1_list.count(i))
    return max(res)

r = fun1(s,ss,sss)
print(r)

http://www.niftyadmin.cn/n/5261318.html

相关文章

力扣40. 组合总和 II(java 回溯法)

Problem: 40. 组合总和 II 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 在使用回溯之前我们首先可以明确该题目也是一种元素存在重复但不可复用的组合类型问题。而此题目可以参考下面一题的大体处理思路&#xff1a; Problem: 90. 子集 II 具体的&#xff1a; 1.首…

ObjectMapper序列化和反序列化特性

Component public class ObjectMapperBuilderCustomizer implements Jackson2ObjectMapperBuilderCustomizer, Ordered {Overridepublic void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {//若POJO对象的属性值为null&#xff0c;序列化时不进行显示j…

nacos产生大量的日志文件,一步操作直接关闭日志保存。

找到nacos文件下对应的{nacos_home}/conf/application.properties全局搜索server.tomcat.accesslog.enabled,然后修改true为false 保存&#xff0c;重新启动nacos即可。

Java_Mybatis_动态SQL

一、动态SQL 1.概述 动态SQL&#xff1a; 是 MyBatis 的强大特性之一&#xff0c;解决拼接动态SQL时候的难题&#xff0c;提高开发效率分类 ifchoose(when,otherwise)trim(where,set)foreach 2.if 做 where 语句后面条件查询的,if 语句是可以拼接多条的 需求&#xff1a;根…

Video anomaly detection with spatio-temporal dissociation 论文阅读

Video anomaly detection with spatio-temporal dissociation 摘要1.介绍2.相关工作3. Methods3.1. Overview3.2. Spatial autoencoder3.3. Motion autoencoder3.4. Variance attention module3.5. Clustering3.6. The training objective function 4. Experiments5. Conclusio…

Selenium库自动化测试入门

前言 为什么要学selenium&#xff1f;&#xff1f;前面已经学了requests库我们会发现 对于绝大多数动态渲染的网页来说&#xff0c;用requests进行爬虫比较繁琐。 所以我们还是要学习一下selenium库&#xff0c;以帮助我们更高效的爬取网页。 环境&#xff1a; pychar 202…

【若依框架无法点击修改与删除按钮原因分析】

若依框架无法点击修改与删除按钮原因分析 如上图所示的 修改与删除按钮 标识1位置的按钮无法使用&#xff0c;即使我厦门复选框选择了一个数据&#xff0c;依旧无法点击 标识2位置的按钮始终可以使用 从上面简单可以看出后台应该是没有问题的 分析过程&#xff1a; 1、设置一个…

Golang 领域驱动设计(DDD)最佳实践

Golang 领域驱动设计(DDD)最佳实践 Golang 领域驱动设计(DDD)最佳实践背景整体设计合理的创建标题,有助于目录的生成代码实现领域层什么是实体(Entity)?基础设施层数据对象表现层一些技巧检查结构体是否实现了某接口的防御代码适应于 Go Web 应用的错误处理对象拷贝Gol…