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

leetcode每日一题 -- 2131.连接两字母单词得到的最长回文串

思路

说实话,一开始没啥思路,于是看了评论区,以下是从评论区大佬代码中得到的思路

题意:

  • 串都是两个字母的,所以要构成回文串有三种情况 -- ab和ba配对,放在对应位置 ; aa和aa配对,放在对应位置 ; aa单独放在中间位置

于是,可以采用 "先记录,后配对,配对完即消除" 的方式,最后判断是否还有aa型的串

  • 其中,记录可以使用哈希表 -- key={a,b},value=出现次数 ; 也可以使用二维数组[a][b]
  • 配对的时候,假设当前为ab型串(当然,a可以等于b),去配对ba型串
  • 找到了,就将原串出现次数-1 (对应消除) ; 找不到,记录当前ab串

代码

class Solution {
public:int longestPalindrome(vector<string>& words) {// 哈希表 map[a][b]表示ab串是否在数组中存在int map[26][26] = {};int res = 0;for (auto it : words) {int a = it[0] - 'a', b = it[1] - 'a';if (map[b][a]) {res += 4; // 2个两字母单词map[b][a]--;} else {map[a][b]++;}}for (int i = 0; i < 26; ++i) {if (map[i][i]) {res += 2; // 只取出一对aa型,放在结果串的中间break;}}return res;}
};

http://www.xdnf.cn/news/9219.html

相关文章:

  • taro + vue3 实现小程序sse长连接实时对话
  • el-tree拖拽事件,限制同级拖拽,获取拖拽后节点的前后节点,同级拖拽合并父节点name且子节点加入目标节点里
  • 让 Deepseek 写一个尺码计算器
  • LLM 驱动的 Go 到 Rust 项目迁移的挑战与实践
  • PHP生成pdf方法
  • AJAX 数据库
  • 第四十五篇-Tesla P40+Qwen3-30B-A3B部署与测试
  • Linux Shell 切换
  • Transformer 通关秘籍10:词向量运算:queen=king-man+wowem
  • 2025年5月6日 飞猪Java一面
  • 2025 年江西研究生数学建模竞赛题C题基于大雾背景视频学习的能见度回归建模完整思路 模型代码 结果 成品分享
  • 为(FramePack)的视频生成添加首尾帧功能
  • OpenGL Chan视频学习-11 Uniforms in OpenGL
  • 【洛谷P9303题解】AC- [CCC 2023 J5] CCC Word Hunt
  • 功耗仅4W!迷你服务器黑豹X2(Panther X2)卡刷、线刷刷入Armbian(ubuntu)系统教程
  • 鸿蒙OSUniApp 制作美观的文章列表展示组件#三方框架 #Uniapp
  • 11.12 LangGraph全局共享状态实战:200ms实现50+仓库AI协同,效率飙升!
  • vscode的Embedded IDE创建keil项目找不到源函数或者无法跳转
  • windows中Redis、MySQL 和 Elasticsearch启动并正确监听指定端口
  • 亚马逊服务器磁盘扩容一般操作
  • 基于springboot的校园商铺管理系统的设计与实现
  • 大型三甲医院更换HIS系统全流程分析与经验考察(下)
  • 【React】-组件中实现高性能鼠标跟随提示框的完整优化过程
  • AI赋能引爆短剧全球化风潮,腾讯云媒体处理助力短剧平台出海吸金
  • 中国免税品人工智能商城:引领免税品市场新潮流
  • transformer总结
  • 华为OD机试真题——斗地主之顺子(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • QAtomicInt原子变量的CAS(Compare And Swap)写法与优缺点
  • 通信算法之279:数据链/自组网通信设备--MIMO(2T2R)-OFDM系统系列--实际工程应用算法代码--2.OFDM参数设计及帧结构设计
  • 批量无人值守装机(使用cobbler批量安装windows)