优选算法_判断字符是否唯一_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;
        
    }
};//位图
相关推荐
Dreamboat-L4 分钟前
日志级别基础 + Spring Boot 日志实践指南
java·服务器·数据库·java-ee·springboot
啵啵啵鱼6 分钟前
第二章 线性表
java·数据结构·算法
虾..9 分钟前
计算机图形学:几何表示
算法
微三云 - 廖会灵 (私域系统开发)10 分钟前
供应链系统实战:多渠道订单聚合与分布式库存一致性方案总结
开发语言·分布式·php
深入云栈18 分钟前
Netty 4.2.x 源码深度解析 (十九):ChannelPool 连接池 —— 连接复用与资源管理
java·后端·架构
用户0942485680319 分钟前
第38章:从零构建JVM稳定性平台最小闭环
java·jvm
局部有解20 分钟前
Hot100 - 三数之和
数据结构·c++·算法
辉艺棉麻小张21 分钟前
用 JSON 建模面料规格:成分、克重、支数与公定回潮率字段设计
数据结构
Zhuo1Joy24 分钟前
压测全绿的假象:0% 错误率的系统与 17.2% 成功率的业务
java
学逆向的36 分钟前
C 数据溢出与精度丢失
c语言·开发语言·网络安全