news 2026/11/4 9:46:38

LeetCode 3838. 带权单词映射【模拟】简单

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 3838. 带权单词映射【模拟】简单

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。

为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库:https://github.com/memcpy0/LeetCode-Conquest。在这一仓库中,你不仅可以看到LeetCode原题链接、题解代码、题解文章链接、同类题目归纳、通用解法总结等,还可以看到原题出现频率和相关企业等重要信息。如果有其他优选题解,还可以一同分享给他人。

由于本系列文章的内容随时可能发生更新变动,欢迎关注和收藏征服LeetCode系列文章目录一文以作备忘。

给你一个字符串数组words,其中每个字符串表示一个由小写英文字母组成的单词。

同时给你一个长度为 26 的整数数组weights,其中weights[i]表示第i个小写英文字母的权重。

单词的权重定义为其所有字符权重的总和。

对于每个单词,将其权重对 26 取模,并将结果按字母倒序映射到一个小写英文字母(0 -> 'z', 1 -> 'y', ..., 25 -> 'a')。

返回一个由所有单词映射后的字符按顺序连接而成的字符串。

示例 1:

输入:words=["abcd","def","xyz"],weights=[5,3,12,14,1,2,3,2,10,6,6,9,7,8,7,10,8,9,6,9,9,8,3,7,7,2]输出:"rij"

解释:

  • "abcd"的权重是5 + 3 + 12 + 14 = 34。对 26 取模的结果是34 % 26 = 8,映射为'r'。
  • "def"的权重是14 + 1 + 2 = 17。对 26 取模的结果是17 % 26 = 17,映射为'i'。
  • "xyz"的权重是7 + 7 + 2 = 16。对 26 取模的结果是16 % 26 = 16,映射为'j'。

因此,连接映射字符后形成的字符串是"rij"。

示例 2:

输入:words=["a","b","c"],weights=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]输出:"yyy"

解释:
每个单词的权重均为 1。对 26 取模的结果是1 % 26 = 1,映射为'y'。

因此,连接映射字符后形成的字符串是"yyy"。

示例 3:

输入:words=["abcd"],weights=[7,5,3,4,3,5,4,9,4,2,2,7,10,2,5,10,6,1,2,2,4,1,3,4,4,5]输出:"g"

解释:
"abcd"的权重是7 + 5 + 3 + 4 = 19。对 26 取模的结果是19 % 26 = 19,映射为'g'。

因此,连接映射字符后形成的字符串是"g"。

提示:

  • 1 <= words.length <= 100
  • 1 <= words[i].length <= 10
  • weights.length == 26
  • 1 <= weights[i] <= 100
  • words[i]仅由小写英文字母组成。

方法 按题意模拟

「将结果按字母倒序映射到一个小写英文字母」,相当于将z zz减去【权重取模后的值】:减0 00就是z zz,减1 11就是y yy…… 减25 2525就是a aa。

classSolution{publicStringmapWordWeights(String[]words,int[]weights){intn=words.length;char[]ans=newchar[n];for(inti=0;i<n;i++){intsum=0;for(charch:words[i].toCharArray()){sum+=weights[ch-'a'];}ans[i]=(char)('z'-sum%26);}returnnewString(ans);}}
classSolution{public:stringmapWordWeights(vector<string>&words,vector<int>&weights){intn=words.size();stringans(n,0);for(inti=0;i<n;i++){intsum=0;for(charch:words[i]){sum+=weights[ch-'a'];}ans[i]='z'-sum%26;}returnans;}};
classSolution:defmapWordWeights(self,words:List[str],weights:List[int])->str:ans=[]ord_a=ord('a')ord_z=ord('z')forwinwords:s=sum(weights[ord(ch)-ord_a]forchinw)ans.append(chr(ord_z-s%26))return''.join(ans)
funcmapWordWeights(words[]string,weights[]int)string{ans:=make([]byte,len(words))fori,w:=rangewords{sum:=0for_,ch:=rangew{sum+=weights[ch-'a']}ans[i]='z'-byte(sum%26)}returnstring(ans)}

复杂度分析:

  • 时间复杂度:O ( L ) O(L)O(L),其中L LL是所有w o r d s [ i ] words[i]words[i]长度之和。
  • 空间复杂度:O ( 1 ) O(1)O(1),返回值不计入。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/1 8:13:15

终极指南:如何快速修复WaveTools抽卡记录同步问题

终极指南&#xff1a;如何快速修复WaveTools抽卡记录同步问题 【免费下载链接】WaveTools &#x1f9f0;鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 你是否遇到过WaveTools抽卡记录突然无法同步的困扰&#xff1f;作为一款专为《鸣潮》玩家设计…

作者头像 李华
网站建设 2026/11/1 8:15:12

一线观察:长期体验科思创 2655 平替,看到的企业管理真相

嘿&#xff0c;咱在固化剂这个领域摸爬滚打也有 5 年啦&#xff0c;对科思创 2655 平替这类产品那是相当熟悉。今天就跟大家唠唠我长期体验森宝利 3655 这款产品&#xff0c;从中看到的一些企业管理真相。先聊聊咱这行业的痛点。市面上普通的水性固化剂问题可不少。就说性能方面…

作者头像 李华
网站建设 2026/11/1 8:11:28

【JAVA毕设源码分享】基于Spring Boot的长春美食推荐管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/11/1 8:11:54

AI写专著的正确打开方式:AI专著写作工具,20万字专著轻松生成!

学术专著创作困境与AI工具解决方案 撰写学术专著对许多研究者来说是一项挑战&#xff0c;不仅在于能否“写出来”&#xff0c;更在于能否“出版并获得认可”。当前的出版市场中&#xff0c;学术专著的受众群体较小&#xff0c;出版社对选题的学术意义和作者的影响力要求非常高…

作者头像 李华
网站建设 2026/11/1 8:21:14

电厂 / 化工高危场景如何防患未然?AI 边缘算力盒子给出答案

设备异常、泄漏隐患精准识别&#xff0c;实时预警 及时处理&#xff0c;降低事故风险摘要&#xff1a;电力、化工高危厂区普遍存在人工巡检存在盲区、传统监控仅录像无预警、云端AI延迟高、数据不合规等行业痛点。本文结合工业现场真实工况&#xff0c;讲解AI边缘算力盒子本地…

作者头像 李华
网站建设 2026/11/1 8:12:50

ZigBee PRO网络配置实战:从ZPS编辑器到性能调优

1. ZigBee PRO网络配置&#xff1a;从理论到实践的深度解析如果你正在开发基于ZigBee的物联网设备&#xff0c;比如智能家居的传感器、开关或者工业无线采集节点&#xff0c;那么“网络配置”这个词绝对是你绕不开的核心环节。它不像写几行应用层代码那样直观&#xff0c;更像是…

作者头像 李华