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

最大字符串配对数目(哈希表实现)

给你一个下标从 0 开始的数组 words ,数组中包含 互不相同 的字符串。

如果字符串 words[i] 与字符串 words[j] 满足以下条件,我们称它们可以匹配:

  • 字符串 words[i] 等于 words[j] 的反转字符串。
  • 0 <= i < j < words.length

请你返回数组 words 中的 最大 匹配数目。

注意,每个字符串最多匹配一次。

示例 1:

输入:words = ["cd","ac","dc","ca","zz"]
输出:2
解释:在此示例中,我们可以通过以下方式匹配 2 对字符串:
- 我们将第 0 个字符串与第 2 个字符串匹配,因为 word[0] 的反转字符串是 "dc" 并且等于 words[2]。
- 我们将第 1 个字符串与第 3 个字符串匹配,因为 word[1] 的反转字符串是 "ca" 并且等于 words[3]。
可以证明最多匹配数目是 2 。

示例 2:

输入:words = ["ab","ba","cc"]
输出:1
解释:在此示例中,我们可以通过以下方式匹配 1 对字符串:
- 我们将第 0 个字符串与第 1 个字符串匹配,因为 words[1] 的反转字符串 "ab" 与 words[0] 相等。
可以证明最多匹配数目是 1 。

示例 3:

输入:words = ["aa","ab"]
输出:0
解释:这个例子中,无法匹配任何字符串。

提示:

  • 1 <= words.length <= 50
  • words[i].length == 2
  • words 包含的字符串互不相同。
  • words[i] 只包含小写英文字母。
class Solution {
public:int maximumNumberOfStringPairs(vector<string>& words) {unordered_map<string,int> cnt;//存储所有反转字符串的数量int ans = 0;for(int i =0;i<words.size();i++){string& s = words[i];ans+=cnt[s];cnt[s]--;reverse(s.begin(),s.end());cnt[s]++;}return ans;}
};

我们创建一个ans统计配对。

cnt[s]--消耗一次配对机会

反转字符串后cnt[s]++表示当前字符串期待的反转形式。

当我们遇到反转字符串后,成功配对,ans+=cnt[s]

然后将一切复原。

http://www.dtcms.com/a/466997.html

相关文章:

  • 深度学习赋能基因与蛋白质研究:从“盲猜”到“精准导航”的生命科学革命
  • 网站建设毕业读书笔记徐州网站的优化
  • 多决策者博弈论优化模型:从理论到实践的完整解决方案 | 23类约束条件+1368个变量+混合整数规
  • 软考中级习题与解答——第十五章_数据结构与算法应用(1)
  • 河南省建设培训中心网站做一个网站需要什么条件
  • 一级a做爰片免费网站给我看看大朗做网站在
  • 网站开发 确认函地方门户
  • 做一个网站需要多少钱大概公司建网站
  • 态网站设计网站设计 卡片式设计
  • 南昌网站建设公司建设部精神文明建设网站
  • Java开发之常用的判空方法
  • 夜夜做新郎网站在线视频博客社区类网站模板
  • 把自己做的网站进行app封包徐州网站app开发
  • 【驱动】RK3576修改驱动,实现RS485自动收发
  • 唐山建设企业网站wordpress留言本页面
  • 工控机:联结智能生产的工业中枢,如何精准选择?
  • 37.1多点电容触摸屏实验(知识)_csdn
  • 第9章:两条道路的风景:技术与管理的真实世界(1)
  • 合肥做网站汇站网辽宁seo
  • 国内出名网站建设设计公司网站怎么做能提升ip流量
  • MobaXterm远程连接云服务器及配置jdk、Tomcat环境
  • 哪些网站开业做简单海报浙江网上职工之家
  • 基于wifi摄像头与单片机的串口透传及二次开发
  • 手机网站上线左右滑动网站 固定ip
  • 乌克兰网站建设移动端网站构成要素
  • ICLR 2025|SleepSMC:通过监督多模式协调实现普遍的睡眠分期
  • PTA6-15 使用函数实现字符串部分复制(C)
  • 做网站须要什么技术网站建设前的需求分析
  • 华清远见25072班C++学习day7
  • wordpress不用php详细描述如何进行搜索引擎的优化