优选算法_判断字符是否唯一_C++

一.题目解析

算法一:哈希表

哈希表储存字母的种类和数量(也可以是bool)

代码实现:

cpp 复制代码
class Solution {
public:
    int hammingWeight(int n) {
        int count=0;
        for(int i=0;i<32;i++)
        {
            if(((n>>i)&1)==1)count++;
        }
        return count;
    }
};

算法二:位图

这里只有26个字母,字符-'a'变成对应的数字(0~26,a~z),1表示出现过,0表示没出现过

通过n=n|(1<<x)将该数插入位图中

代码实现

cpp 复制代码
class Solution {
public:
    bool isUnique(string astr) {
        int n=astr.size();
        if(n>26)return false;//鸽巢原理
        
        int bitmap=0;
        for(auto ch:astr)
        {
             int i=ch-'a';//字母对应数
             if(((bitmap>>i)&1)==1) return false;//判断是否相同
             bitmap|=1<<i;   
        }
        return true;
        
    }
};//位图
相关推荐
AI你一生一世1 小时前
不止于时序存储:DolphinDB 如何成为 AI 时代的工业智能底座
java·人工智能·struts·时序数据库·工业智能·dolphindb·ai基础设施
布莱克6051 小时前
C/C++ 中变量的声明与定义:区别、联系与常见误区
c语言·开发语言·c++·声明·定义
云-缩影1 小时前
拆解 AI 图像生成应用的后端架构:ECS、OSS 和大模型 API 怎么配合
java·spring boot·后端
LabVIEW开发1 小时前
LabVIEW 局部变量为何引发竞争条件?四种同步机制
开发语言·labview
瑞克-桑切斯1 小时前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
benchmark_cc2 小时前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
ZhengEnCi2 小时前
大模型的分类到底怎么分:从基础模型到推理模型、从通用到专用的完整图谱
算法
Zenova EdgeOS3 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
取名真是3 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
罗西的思考3 小时前
【轻量化复刻大模型 / KIMI K3】KDA 模块交互式演示
人工智能·算法·机器学习