实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
解法一
class Solution {
public boolean isUnique(String astr) {
//转成数组后排序
char[] ch = astr.toCharArray();
Arrays.sort(ch);
//如果当前的字符和后一个字符相同,返回false
for (int i = 0; i < ch.length; i++) {
if (i == ch.length - 1) break;
if (ch[i] == ch[i + 1]) return false;
}
return true;
}
}
解法二
class Solution {
public boolean isUnique(String astr) {
//set
char[] ch = astr.toCharArray();
Set<Character> set = new HashSet<>();
for (char c : ch) {
//如果已存在,返回false
if (!set.add(c)) return false;
}
return true;
}
}
解法三
class Solution {
public boolean isUnique(String astr) {
char[] arr = new char[256];
char[] ch = astr.toCharArray();
//统计单词的个数
for (char c : ch) {
if (arr[c - 97] >= 1) return false;
arr[c - 97]++;
}
return true;
}
}