面试题 01.01. 判定字符是否唯一
题目描述:实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例1️⃣:
输入: s = "leetcode"
输出: false
示例2️⃣:
输入: s = "abc"
输出: true
限制:
0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。
分析:
1.只是对字符的计数,根据ASCII表,我们可以用长度为128的数组来给所有字符计数。
2.限制,要求我们不要用额外的数据结构,即避开哈希表的使用。
代码题解:
class Solution {
public:
bool isUnique(string astr) {
int* cnt=new int[128](); //计数数组,各元素先初始化为零
for(int i:astr){cnt[int(i)]++;if(cnt[int(i)]==2)return false;}
delete[]cnt;//┗( T﹏T )┛遍历计数数组,检验
return true;
}
};
AC: