当前位置: 首页 > news >正文

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),返回值不计入。
http://www.jsqmd.com/news/1032809/

相关文章:

  • ZigBee OTA升级核心数据结构解析与实战指南
  • ZigBee ZCL错误处理与核心函数实战:从原理到嵌入式开发避坑指南
  • ZigBee ZCL集群开发实战:从事件回调到属性管理,以门锁和温控器为例
  • 2026湖州自建房庭院设计施工公司有哪些 - 品牌排行榜
  • Linux系统JDK安装配置全攻略:从下载到多版本管理
  • Umi-OCR终极指南:5分钟掌握免费开源离线OCR软件
  • 2026年停车场照明品牌与智慧节能技术发展趋势 - 品牌排行榜
  • ZFX山海证券:“英伟达估值聚焦增长前景”
  • IDEA摸鱼阅读插件终极指南:在IntelliJ中隐秘阅读电子书的完整教程
  • SkillFlow: Flow-Driven Recursive Skill Evolution for Agentic Orchestration
  • 摩托车托运多少钱?教你用“寄半折”省一半运费 - 快递物流资讯
  • 从CVE-2018-8715看嵌入式Web Server的认证逻辑缺陷与实战利用
  • 让 AI 替你翻书:LLM Wiki 知识管理实战总结
  • 2026佛山企业办公室搬家价目表 靠谱公司老旧家具拆装收费明细大全 - 从来都是英雄出少年
  • OpenCore Legacy Patcher终极指南:让老Mac焕发新生的完整方案
  • 2026上海静安区黄金回收价格对比:哪家无套路到手更划算? - 沪上贵金属口碑推荐官
  • 突破XVC性能瓶颈:从ZYNQ参考设计到高效JTAG传输的架构优化实践
  • 1N6100隔离二极管阵列:ESD防护与高速信号隔离设计实战
  • Deepseek V4普通人实战指南:零基础用AI搞定工作生活
  • 2026甄选:上海复式LOFT公寓房东直租拎包入住品牌机构 - 品牌发掘
  • 设备运维
  • QTTabBar完整指南:为Windows资源管理器添加标签页功能的终极解决方案
  • 三、从通量到散度:高斯定理的物理图像与工程应用
  • PTA 作业集 4~6总结博客_NCHU
  • 2026佛山设备搬运公司口碑排名 精密仪器搬迁定制化方案指南 - 从来都是英雄出少年
  • Treelite终极指南:5分钟掌握决策树模型转换与跨框架部署
  • Loop Engineering火了,一文带你入门!
  • 2026佛山搬厂公司口碑排名 专业厂房搬迁实力信誉双保障 - 从来都是英雄出少年
  • 2026佛山搬家公司口碑排行榜TOP5 细节服务优质搬家企业推荐 - 从来都是英雄出少年
  • 当AI助手成为数字员工湖南格讯为某公司农机事业部开发AI助手实战总结 - 技术瞭望台