题意:输入一个字符串(ASCII),判断该字符串中是否有重复的字符
解法1:遍历字符串,将每一个字符转为ASCII码映射到一个数组对应的下标,记录字符出现的次数
class Solution {
public static boolean isUnique(String astr) {
int[] flag = new int[128];
for (int i = 0; i < astr.length(); i++) {
char c = astr.charAt(i);
flag[(int) c]++;
}
for (int count : flag) {
if(count != 0 && count != 1) {
return false;
}
}
return true;
}
}
解法2:遍历字符串,比较每一个字符在字符串第一次出现的下标和最后一次出现的下标
public static boolean isUnique(String astr) {
int i = 0;
while (i< astr.length() && astr.lastIndexOf(astr.charAt(i)) == astr.indexOf(astr.charAt(i))) {
i++;
}
return i==astr.length();
}