給定一個字元串,找到它的第一個不重複的字元,并傳回它的索引。如果不存在,則傳回 -1。
https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn5z8r/
class FirstUniqueChar{
//方法1:若某個元素在字元串中首次出現和最後一次出現的位置相等,說明它是唯一的
public int firstUniqChar2(String s) {
int index = -1;
for (int i = 0; i < s.length(); i++){
if (s.indexOf(s.charAt(i)) == s.lastIndexOf(s.charAt(i))){
index = i;
break;
}
}
return index;
}
//方法2:用一個char型數組統計字元出現的次數,再周遊字元串找到第一個唯一的字元
public int firstUniqChar1(String s) {
int index = -1;
char[] count = new char[256];
for (int i = 0; i < s.length(); i++){
count[s.charAt(i)]++;
}
for (int i = 0; i < s.length();i++){
if (count[s.charAt(i)] == 1){
index = i;
break;
}
}
return index;
}
//方法三:兩重for循環周遊字元串,位置相同就不比較
public int firstUniqChar(String s) {
int index = -1;
for (int i = 0; i < s.length(); i++){
boolean flag = false;
for (int j = 0; j < s.length(); j++){
if (i == j){
continue;
}
if (s.charAt(i) == s.charAt(j)){
flag = true;
break;
}
}
if (flag == false){
index = i;
break;
}
}
return index;
}
}