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

【编程技巧】使用hash保存异位字符串

Coding Techniques

  • 使用hash保存异位字符串
    • 问题
    • 解决方案
    • 相关题目

使用hash保存异位字符串

问题

为了保存独一无二的字符串组成时,一般可以联想到使用数组保存字符数量,但是怎么保存到unordered_set或者unordered_map中呢?

如果使用下面形式:

using Key = array<int, 26>;
unordered_set<Key> us{}; // 会报错,implicit-default constructor

解决方案

上面代码的问题其实是没有对应的hash方法。

为了达到初始目标,可以使用string或者整型来达到目标

// string形式
unordered_set<string> us;
// ...
string tmp = srcStr;
sort(tmp.begin(), tmp.end());
us.insert(tmp); // us.emplace(tmp);


// 整型形式
unordered_set<int> us;
// ...

int key{};
for (auto c : s) {
	key |= 1 << (c - 'a');
}

us.emplace(key);

相关题目

3272. 统计好整数的数目

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

相关文章:

  • 教师教学技能大赛流程方案及细则
  • C#最新语言特性
  • Deepseek R1 和其他的大模型 共同辅助决策交通出行方案
  • 英语场景(一)
  • 当我尝试用AI组团去编故事
  • UDP、TCP的区别
  • 1.4 嵌入式系统的软件
  • 提升 AI 服务的稳定性:Higress AI 网关的降级功能介绍
  • 区块链共识机制详解
  • CentOS的ssh复制文件
  • C++ DAY3
  • SMT贴片车间高效运作实战指南
  • uniapp 网络请求封装(uni.request 与 uView-Plus)
  • 《深度学习实战》第2集:卷积神经网络(CNN)与图像分类
  • BDF7与glm的对话
  • 学习笔记-沁恒第四讲-米醋
  • 校园电子地图制作:校园三维地图从 CAD 图纸到 WebGIS 服务的完整链路
  • Spring Boot 集成 T-io 实现客户端服务器通信
  • 蓝桥杯定时器实现led闪烁
  • Proser:在项目中验证功能
  • 【多模态处理篇六】【DeepSeek3D点云处理:PointNet++工业检测】
  • C++17中std::chrono::duration和std::chrono::time_point的舍入函数
  • 解决:将deepseek本地部署之后出现网络错误
  • 51单片机-串口通信编程
  • js 实现隔行幻色
  • 第五篇:DeepSeek-R1 的应用场景与未来展望
  • [特殊字符] 蓝桥杯 Java B 组 之位运算(异或性质、二进制操作)
  • Linux第十三节 — 进程状态详解
  • sklearn中的决策树-分类树:重要参数
  • reacct hook useState