【算法】位运算

位运算

位运算总结图


判定字符是否唯一

如何从浅到深的挖入这道题?从常见的哈希表到数组模拟哈希表到用到位图思想,想到了用位图

鸽巢原理对位图进行优化:如果字符串的长度大于26,则一定是有重复的(一共且只有26个英文字母,顶多刚好从a ~ z 全部都过一遍)

代码实现

java 复制代码
	public boolean isUnique(String astr) {
        // 位图 + 鸽巢 / 抽屉原理 (优化)
        int bitMap = 0;
        // 鸽巢 / 抽屉原理(优化)
        // 如果字符串的长度大于26,则一定是有重复的(一共且只有26个英文字母,顶多刚好从a ~ z 全部都过一遍)
        if (astr.length() > 26) return false;

        for (int i = 0; i < astr.length(); i++) {
            int x = astr.charAt(i) - 'a';
            // 先判断字符是否在位图中
            if (((bitMap >> x) & 1) == 1) return false;
            bitMap |= 1;// 把当前字符加入到位图中
            bitMap <<= x;
        }
        return true;
    }
复制代码
保持更新中...
相关推荐
qq_463408422 小时前
React Native跨平台技术在开源鸿蒙中使用WebView来加载鸿蒙应用的网页版或通过一个WebView桥接本地代码与鸿蒙应用
javascript·算法·react native·react.js·开源·list·harmonyos
苏州知芯传感2 小时前
柔性抓取的“慧眼”:MEMS 3D视觉如何让机器人精准识别无序堆叠的复杂钣金件?
算法·3d·机器人·mems
iAkuya2 小时前
(leetcode)力扣100 22相交链表(双指针)
算法·leetcode·链表
chao1898442 小时前
基于MATLAB的ADI方法求解偏微分方程详解
开发语言·算法·matlab
智驱力人工智能2 小时前
超越识别 将光学字符识别(OCR)技术转化为可靠业务能力的交付思维 光学字符识别 金融票据OCR识别系统 物流单据自动识别技术
人工智能·opencv·算法·目标检测·ocr·边缘计算
算法与编程之美3 小时前
解决tensor的shape不为1,如何转移到CPU的问题
人工智能·python·深度学习·算法·机器学习
natide3 小时前
词汇/表达差异-8-Token Overlap(词元重叠度)
大数据·人工智能·深度学习·算法·自然语言处理·nlp·知识图谱
hetao17338373 小时前
2025-12-22 hetao1733837的笔记
c++·笔记·算法
Binky6783 小时前
力扣--贪心篇(1)
数据结构·算法·leetcode