LeetCode9:判定字符是否唯一
判定字符是否唯一
实现一个算法,确定一个字符串 s 的所有字符是否全都不同
示例 1
输入: s = "leetcode"
输出: false
示例 2
输入: s = "abc"
输出: true
限制:
0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。
mine
用set去重的原理
public static boolean isUnique(String astr) {
char[] chars = astr.toCharArray();
HashSet<Character> set = new HashSet<>();
for (char aChar : chars) {
if (!set.add(aChar)) {
return false;
}
}
return true;
}
用stream流去重方法,好像效率不太行
public static boolean isUnique1(String astr) {
long count = astr.chars().distinct().count();
return count == astr.length();
}
other
采用位运算
public static boolean isUnique2(String astr) {
int aa = 0;
int cc = 1;
for (int i = 0; i < astr.length(); i++) {
char t = astr.charAt(i);
int offset = t - 'a';
int bb = cc << offset;
if ((aa & bb) != 0) {
return false;
}
aa |= bb;
}
return true;
}
本文链接:
/archives/leetcode9
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Yida!
喜欢就支持一下吧