编程题练习@8-26

news/2024/12/22 11:12:20/

题目一:

题目描述
你的团队最近更新了语音识别的算法,瑰需要对更新之后的算法模型进行识别率指标统计。 语音识别率指标通常为WER(Word Error Rate)即计算语音识别文本中出现错误的字总数占标准文本中总字数的比例。为了使识别出来的文本序列和标准的文本序列之间保持一致,需要进行替换,删除,或者插入某些字。 这些插入,替换,删除的字的总个数,除以标准的文本词序列中字的个数的百分比,即为WER。
现需要你根据标准文本对识别结果进行错误统计,计算每句识别结果的总错误数量。

输入描述
第一行输入:标准文本(汉字用空格分隔) 第二行输入:识别文本(汉字用空格分隔)
输出描述
输出:识别文本的总错误数,即插入错误数+删除错误数+替换错误数
备注:可能存在同一个输入,有多组插入错误、删除错误以及替换错误的组合情况,此时输出多组里面的最小之和即可

示例1
输入
‘我不在科大讯飞工作’
‘我在科大讯飞工作’
输出
1

备注
插入错误示例:‘我在科大讯飞工作’->‘我不在科大讯飞工作’(识别文本中第2个’不’字为识别出的多余/插入内容,为1个插入错误);
删除错误示例:‘我在科大讯飞工作’->‘我再科大讯飞工作’(标准文本中的’在’被识别为了’再’,为1个替换错误)。

def minDistance(s1, s2):m, n = len(s1), len(s2)memo = [[-1] * n for _ in range(m)]return dp(s1, m - 1, s2, n - 1, memo)def dp(s1, i, s2, j, memo):if i == -1:return j + 1if j == -1:return i + 1if memo[i][j] != -1:return memo[i][j]if s1[i] == s2[j]:memo[i][j] = dp(s1, i - 1, s2, j - 1, memo)else:memo[i][j] = min(dp(s1, i, s2, j - 1, memo) + 1,  # 插入dp(s1, i - 1, s2, j, memo) + 1,  # 删除dp(s1, i - 1, s2, j - 1, memo) + 1  # 替换)return memo[i][j]if __name__ == "__main__":# s1 = input()# s2 = input()s1 = '我不在科大讯飞工作's2 = '我在在在在在在在在科大讯飞工作' print(minDistance(s1, s2))
7

AC 40%,leetcode AC100%,欢迎交流!

题目二:

题目描述
输入一个2行n列(1≤n≤1e5)的矩阵a(1≤a[i][j]≤1e9)。你需要从矩阵中选择一些数,要求任意两数不能左右相邻,也不能上下相邻。求所选数字之和的最大值。

示例1
输入
[[9,3,5,7,3],[5,8,1,4,5]]
输出
29

示例2
输入
[[1,2,9]],[10,1,1]]
输出
19

示例3
输入
[[7],[4]]
输出
7

def maxSum(nums):n = len(nums[0])dp = [[0] * n for i in range(2)]dp[0][0] = nums[0][0]dp[1][0] = nums[1][0]for i in range(1, n):dp[0][i] = max(dp[0][i-1], dp[1][i-1] + nums[0][i])dp[1][i] = max(dp[1][i-1], dp[0][i-1] + nums[1][i])return max(dp[0][-1], dp[1][-1])if __name__ == '__main__':data = [[[9,3,5,7,3],[5,8,1,4,5]],[[1,2,9], [10,1,1]],[[7],[4]]]for nums in data:print(maxSum(nums))
29
19
7

AC 100%


http://www.ppmy.cn/news/1065189.html

相关文章

【LeetCode-面试经典150题-day15】

目录 104.二叉树的最大深度 100.相同的树 226.翻转二叉树 101.对称二叉树 105.从前序与中序遍历序列构造二叉树 106.从中序与后序遍历序列构造二叉树 117.填充每个节点的下一个右侧节点指针Ⅱ 104.二叉树的最大深度 题意: 给定一个二叉树 root ,返回其…

R语言画样本不均衡组的箱线图

# 导入 ggplot2 包 library(ggplot2)# 示例数据框&#xff0c;包含数值数据和分组信息 data <- data.frame(Group c(rep("Group A",10), rep("Group B",15),rep("Group C",20)),Value c(rnorm(10, mean 10, sd 2),rnorm(15, mean 15, sd…

Python语言实现React框架

迷途小书童的 Note 读完需要 6分钟 速读仅需 2 分钟 1 reactpy 介绍 reactpy 是一个用 Python 语言实现的 ReactJS 框架。它可以让我们使用 Python 的方式来编写 React 的组件&#xff0c;构建用户界面。 reactpy 的目标是想要将 React 的优秀特性带入 Python 领域&#xff0c;…

php curl apache 超时 500错误

web请求超过40s 就返回500错误 php的超时时间 set_time_limit无效 curl CURLOPT_TIMEOUT 设置请求时间 无效 设置apache Timeout 链接超时 无效 最后添加 Fcgid才可以 apache 配置文件 httpd.conf <IfModule mod_fcgid.c>FcgidProcessLifeTime 10000FcgidIOTimeout 1000…

openGauss学习笔记-51 openGauss 高级特性-列存储

文章目录 openGauss学习笔记-51 openGauss 高级特性-列存储51.1 语法格式51.2 参数说明51.3 示例 openGauss学习笔记-51 openGauss 高级特性-列存储 openGauss支持行列混合存储。行存储是指将表按行存储到硬盘分区上&#xff0c;列存储是指将表按列存储到硬盘分区上。 行、列…

Go 自学:切片slices

以下代码展示了两种建立slice的方法。 我们可以使用sort函数给slice排序。 package mainimport ("fmt""sort" )func main() {var fruitList []string{"Apple", "Tomato", "Peach"}fmt.Printf("Type of fruitlist is…

【太多网工对NAT还存在这4种误解!你是其中一个吗?】

NAT是解决公网地址不够用大家最熟悉的网络技术之一&#xff0c;而NAT最依赖的是NAT translation表项&#xff0c;至于NAT的概念和背景这里不再解释&#xff0c;网络上有很多关于此的类似介绍&#xff0c;自己搜索即可。下面主要是针对大家对NAT的一些误解进行分析。 1 误解一…

DiskCatalogMaker for Mac简单智能快速的磁盘管理工具

DiskCatalogMaker是一款Mac上的磁盘目录管理工具。它可以帮助用户快速创建和管理磁盘目录&#xff0c;方便查找和访问存储在磁盘上的文件和文件夹。它具有快速扫描和索引功能&#xff0c;生成详细的目录列表&#xff0c;支持关键字搜索和自定义标签。 此外&#xff0c;DiskCat…