每日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)祝您新年渐进步步高。