华为OD试题四(字符串统计、计算误码率、计算最大乘积)

1. 字符串统计

题目描述:
给定两个字符集合,一个为全量字符集,一个为已占用字符集。
已占用的字符集中的字符不能再使用,要求输出剩余可用字符集。
输入描述:
1、输入为一个字符串,一定包含@符号。@前的为全量字符集,@后的字为已占用字符集。2、已占用字符集中的字符一定是全量字符集中的字符。字符集中的字符跟字符之间使用英文逗号分隔。3、每个字符都表示为字符加数字的形式,用英文冒号分隔,比如a:1,表示1个a字符。4、字符只考虑英文字母,区分大小写,数字只考虑正整形,数量不超过100。 5、如果一个字符都没被占用,@标识仍然存在,例如a:3,b:5,c:2@输出描述:输出可用字符集,不同的输出字符集之间回车换行。示例1输入:a:3,b:5,c:2@a:1,b:2输出:a:2,b:3,c:2说明:全量字符集为3个a,5个b,2个c。已占用字符集为1个a,2个b。 由于已占用字符不能再使用,因此,剩余可用字符为2个a,3个b,2个c。因此输出a:2,b:3,c:2

示例代码:

#测试数据
test_data = 'a:3,b:5,c:2@a:1,b:2'
# 拆分数据
a1,a2 = test_data.split("@")
a1_dict = { ele.split(":")[0]:ele.split(":")[1] for ele in a1.split(',')}
a2_dict = { ele.split(":")[0]:ele.split(":")[1] for ele in a1.split(",") }for k,v in a2_dict.items():a1_dict[k] = str(int(a1_dict[k]) - int(a2_dict[k]))result = []
for k,v in a1_dict.items():result.append("{}:{}".format(k,v))
print(','.join(result))

2. 计算误码率

题目描述:
误码率是最常用的数据通信传输质量指标。它可以理解为“在多少位数
据中出现一位差错”。
移动通信网络中的误码率主要是指比特误码率,其计算公式如下:比
特误码率=错误比特数/传输总比特数,
为了简单,我们使用字符串来标识通信的信息,一个字符错误了,就
认为出现了一个误码输入一个标准的字符串,和一个传输后的字符
串,计算误码率 
字符串会被压缩,
例如:“2A3B4D5X1Z” 表示 “AABBBDDDDXXXXXZ
用例会保证两个输入字符串解压后长度一致,解压前的长度不一定一
致。
每个生成后的字符串长度<100000000。
输入描述:
两行,分别为两种字符串的压缩形式。 每行字符串(压缩后的)长度
<100000
输出描述:
一行,错误的字符数量 / 展开后的总长度
示例1:
输入:3A3B2A4B
输出:1/6

示例代码:

# 测试数据
test_data1 = '4Y5Z'
test_data2 = '9Y'
# 将码展开
def fun1(s):res = ''start = 0end = 0while start <= len(s) - 1 and end <= len(s) - 1:if s[end].isdigit():end += 1else:res = res + (int(s[start:end]) * s[end])end += 1start = endreturn res
# 计算错码率
def fun(s1,s2)ss1 = fun1(s1)ss2 = fun1(s2)# 统计错误的个数count = 0for a,b in zip(ss1,ss2):if a != b:count += 1return "{}/{}".format(str(count),str(len(ss1)))res = fun(test_data1,test_data2)
print(res)

3.计算最大乘积

题目描述:
给定一个元素类型为小写字符串的数组,请计算两个没有相同字符的
元素 长度乘积的最大值,如果没有符合条件的两个元素,返回0。
输入描述:
输入为一个半角逗号分隔的小写字符串的数组,2 <= 数组长度
<=100,0 < 字符串长度<= 50。
输出描述:
两个没有相同字符的元素 长度乘积的最大值。
示例1
输入: iwdvpbn,hk,iuop,iikd,kadgpf
输出:14

示例代码:

# 测试数据
test_data = "iwdvpbn,hk,iuop,iikd,kadgpf"
s_list = test_data.split(',')def fun(s1,s2)# 计算两个字符串长度的乘积s1_set = set(s1)s2_set = set(s2)s = s1_set - s2_setif len(s) == len(s1_set):return len(s1) * len(s2)else:return -1def fun1(s_list):result = []# 计算最大长度start = 0while start <= len(s_list) - 2:end = start + 1while end <= len(s_list) - 1:res = fun(s_list[start],s_list[end])if res != -1:result.append(res)end += 1start += 1return max(result)r = fun1(s_list)
print(r)

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

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

相关文章

记录每日LeetCode 746.使用最小花费爬楼梯 Java实现

题目描述&#xff1a; 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低…

Windows使用VNC Viewer远程桌面Ubuntu【内网穿透】

文章目录 前言1. ubuntu安装VNC2. 设置vnc开机启动3. windows 安装VNC viewer连接工具4. 内网穿透4.1 安装cpolar【支持使用一键脚本命令安装】4.2 创建隧道映射4.3 测试公网远程访问 5. 配置固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址5.3 测试…

hypervisor display显卡节点card0生成过程

ditsi 配置 lagvm/LINUX/android/vendor/qcom/proprietary/devicetree/qcom direwolf-g9ph.dts #include "direwolf-vm-la.dtsi" direwolf-vm-la.dtsi #include "display/quin-vm-display-la.dtsi" quin-vm-display-la.dtsi //对应/sys/class/drm/card…

推荐几款值得收藏的3DMAX插件

推荐几款值得收藏的3DMAX插件 StairGenerator StairGenerator一键楼梯插件&#xff0c;不需要花费太多的时间&#xff0c;轻松从2D平面图生成3D楼梯模型&#xff0c;生成的楼梯模型细节丰富真实。 【主要功能】 1.简单&#xff1a;轻松实现2D到3D建模。 2.具有最详细三维结…

高级桌面编程(一)

前言 学习心得&#xff1a;C# 入门经典第8版书中的第15章《高级桌面编程》 创建控件并设置样式 1 样式 Style WPF 当中我们可以对每一个控件进行完全的自定义。我们可以随意更改控件外观和功能。提供我们能完成这样的效果与控件的样式&#xff08;Style&#xff09;有着不可分…

【mysql8的一个利器, CTE查询】

今天因为一个比较头疼的mysql查询问题, 去Stack Overflow提问, 然后底下有人答复说既然用了mysql8, 不要用子查询, 直接用CTE查询. CTE查询是啥, 我直接百度了下, 然后发现, 这玩意太好用了, 但是说实话, 我可以肯定大多数人基本都不会去了解这些新出的功能,毕竟经手的项目大多…

人工智能革命:共同探索AIGC时代的未来

一、引言 随着大数据和强大的计算能力的兴起&#xff0c;人工智能技术&#xff08;AI&#xff09;正在快速发展&#xff0c;并为各个领域带来革命性的变化。人工智能与智能计算技术&#xff08;AIGC&#xff09;的融合不仅为企业、科研机构和普通用户提供了巨大的机遇&#xff…

60.Sentinel源码分析

Sentinel源码分析 1.Sentinel的基本概念 Sentinel实现限流、隔离、降级、熔断等功能&#xff0c;本质要做的就是两件事情&#xff1a; 统计数据&#xff1a;统计某个资源的访问数据&#xff08;QPS、RT等信息&#xff09; 规则判断&#xff1a;判断限流规则、隔离规则、降级规…

数字孪生Web3D智慧机房可视化运维云平台建设方案

前言 进入信息化时代&#xff0c;数字经济发展如火如荼&#xff0c;数据中心作为全行业数智化转型的智慧基座&#xff0c;重要性日益凸显。与此同时&#xff0c;随着东数西算工程落地和新型算力网络体系构建&#xff0c;数据中心建设规模和业务总量不断增长&#xff0c;机房管理…

函数装饰器基础

1 函数装饰器基础 1.1 函数调用 描述 根据之前文章《python函数属性和注解》得知&#xff0c;python函数定义时生成函数对象并赋值给了函数名。 调用方式&#xff1a; &#xff08;1&#xff09;直接调用方式为&#xff1a;通过函数名圆括号()调用函数&#xff0c;比如f1(…

Xcode 15 Assertion failed: (false “compact unwind compressed function offset doesn‘t fit in 24

xcode 真机运行报错&#xff1a;Assertion failed: (false && "compact unwind compressed function offset doesnt fit in 24 bits"), function operator(), file Layout.cpp, line 5758 如下图&#xff1a; 解决办法&#xff1a; 在 targets-->Build …

力扣---最长回文子串(动态规划)

目录 ​编辑 题目 思路步骤&#xff1a; 代码 我的其他博客 题目 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同&#xff0c;则该字符串称为回文字符串。 示例 1&#xff1a; 输入&#xff1a;s "babad" 输出&…

【C++】标准库中的string类

目录 一、介绍 二、常用接口 1.构造函数和赋值操作 2.string类对象的容量操作 3.string类对象的访问及遍历操作 4.string类对象的修改操作 5.string类非成员函数 放在最后 一、介绍 在C中&#xff0c;std::string 是标准库提供的字符串类。它属于 <string> 头文件…

ROS机器人入门

http://www.autolabor.com.cn/book/ROSTutorials/ 1、ROS简介 ROS 是一个适用于机器人的开源的元操作系统。其实它并不是一个真正的操作系统&#xff0c;其 底层的任务调度、编译、寻址等任务还是由 Linux 操作系统完成&#xff0c;也就是说 ROS 实际上是运 行在 Linux 上的次级…

MySQL主从复制详解

目录 1. 主从复制的工作原理 1.1. 主从复制的角色 1.2. 主从复制的流程 2. 配置MySQL主从复制 2.1. 确保主服务器开启二进制日志 2.2. 设置从服务器 2.3. 连接主从服务器 2.4. 启动复制 3. 主从复制的优化与注意事项 3.1. 优化复制性能 3.2. 注意复制延迟 3.3. 处理…

Broken pipe

1. 请解释什么是Broken pipe错误&#xff0c;以及它是如何发生的&#xff1f; Broken pipe错误通常发生在网络编程中&#xff0c;比如在使用socket编程时&#xff0c;当客户端发送了一个请求&#xff0c;但是服务器已经关闭了连接或者在客户端发送数据时&#xff0c;网络连接出…

多进程间通信学习之信号灯集(信号量数组)

信号灯集&#xff08;信号量数组&#xff09;&#xff1a;1、实现进程同步的机制&#xff1b;2、在一个信号灯集中&#xff0c;可以有很多信号灯&#xff1b;3、这些信号灯集中的信号灯相互独立&#xff0c;每个灯的值的改变都不会影响到其他的信号灯&#xff1b;4、信号灯的值…

adb setting设置

设置主页面 adb shell am start com.android.settings/com.android.settings.Settings 安全 adb shell am start com.android.settings/com.android.settings.SecuritySettings 手机无线信息 adb shell am start com.android.settings/com.android.settings.RadioInfo 更…

买显卡别再只看N、A两家了,这些高性价比I卡也很香

谈起独立显卡&#xff0c;相信不少朋友都会第一时间想起NVIDIA与AMD这两家巨头。然而&#xff0c;除了这两家巨头以外&#xff0c;凭借集显占据全球最高显卡市场份额的英特尔在2021年正式入局了独显市场&#xff0c;并在去年9月的时候公布了Arc A系列显卡阵容&#xff0c;型号从…

算法——动态规划(DP,Dynamic Programming)

一、基础概念 DP的思想&#xff1a; 把问题分成子问题&#xff0c;前面子问题的解决结果被后面的子问题使用DP与分治法的区别&#xff1a; 分治法把问题分成独立的子问题&#xff0c;各个子问题能独立解决 自顶向下DP前面子问题的解决结果被后面的子问题使用&#xff0c;子问题…