每日OJ题_位运算③_力扣面试题 01.01. 判定字符是否唯一

目录

力扣面试题 01.01. 判定字符是否唯一 

解析代码


力扣面试题 01.01. 判定字符是否唯一 

面试题 01.01. 判定字符是否唯一

难度 简单

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。

示例 1:

输入: s = "leetcode"
输出: false 

示例 2:

输入: s = "abc"
输出: true

限制:

  • 0 <= len(s) <= 100
  • s[i]仅包含小写字母
  • 如果你不使用额外的数据结构,会很加分。
class Solution {
public:
    bool isUnique(string astr) {

    }
};

解析代码

        位图的思想,一个int1到26比特位的0/1表示不存在/存在,先判断每一个字符,如果对应的比特位置为1了就返回false,否则把其对应的比特位置1,遍历结束返回true。

class Solution {
public:
    bool isUnique(string astr) {
        if(astr.size() > 26) // 鸽巢原理优化
            return false;
        
        int bits = 0;
        for(auto& e : astr)
        {
            int i = e - 'a';
            if((bits >> i) & 1)
            {
                return false;
            }
            bits |= (1 << i);
        }
        return true;
    }
};

大年初一,贴个其他帅哥美女程序员的祝福给各位帅哥美女:

  • 冒泡排序,选择排序,插入排序,快速排序,堆排序,归并排序,希尔排序,桶排序,基数排序新年为您排忧解难。
  • 有向图,无向图,有环图,无环图,稠密图,稀疏图,拓扑图祝您新年大展宏图。
  • 最长路,最短路,单源路径,所有节点对路径祝您新年路路通畅。
  • 平衡二叉树,AVL树,红黑树,B+树,最小生成树祝您新年好运枝繁叶茂。
  • 最大流,网络流,标准输入输出流,文件输入输出流祝您新年顺顺流流。
  • 线性动规,区间动规,坐标动规,背包动规,树型动规为您的新年规划精彩。
  • 散列表,哈希表,邻接表,双向链表,循环链表帮您在新年表达喜悦。
  • O(n!),O(2^n),O(n^3),O(n^2),O(nlog n),O(n),O(log n),O(1)祝您新年渐进步步高。

你可能感兴趣的:(每日OJ题,leetcode,算法,c++,位图,位运算)