面试题 01.01. 判定字符是否唯一
程序员文章站
2024-03-04 11:08:23
...
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
解答1
当最后一次索引的位置不是现在的位置就可以判断重复
public static boolean isUnique(String astr) {
for (int i = 0; i < astr.length(); i++){
char c = astr.charAt(i);
if (i != astr.lastIndexOf(c)){
return false;
}
}
return true;
}
解答2
创建一个长度为255的数组,对应所有的字符的ASCII码,并遍历字符串的每一个字符,把相应的计数次数+1。
public static boolean isUnique(String astr) {
int [] arr = new int[256];
char [] crr = astr.toCharArray();
for (char c: crr){
if ( arr[(int)c] == 1){
return false;
}
arr[(int)c] ++;
}
return true;
}
解答3
public static boolean isUnique(String astr) {
int [] arr = new int[256];
for (int i = 0; i < astr.length(); i++){
int a = astr.charAt(i) - 'A';
if (arr[a] == 1){
return false;
}
arr[a] = 1;
}
return true;
}
下一篇: Android 仿苹果IOS6开关按钮