实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
https://leetcode-cn.com/problems/is-unique-lcci/
示例 1:
输入: s = "leetcode"
输出: false
示例 2:
输入: s = "abc"
输出: true
链接:
目录
解题思路
第一种 暴力算法 双重for循环,挨个比较。
第二种 使用hashMap(key为字符串中的字符,value为出现的次数) 如果有一个key 的value的值 大于1 那么就是重复了。
第三种 直接利用HashSet不能存储重复元素的特性。我用的这种方式。
第四种 位运算,这个的话题目好像也没说字符一定时26个英文字母。就暂时不讨论了,哈哈。
代码
public static boolean isUnique(String astr) {
if ("".equals(astr) || astr == null) {
return true;
}
Set<Character> uniqueSet = new HashSet<>();
char[] chars = astr.toCharArray();
for(char i: chars){
if(!uniqueSet.add(i)){
return false;
}
}
return true;
}