題目:
思路:
(1):轉char,然後排序,時間複雜度是nlogn
(2):字符串,全部是字母,那麼很簡單,就是簡單的桶排序問題,申請一個數組,然後記錄每個字母出現的次數,找到出現奇次數的字母,然後查找他的位置。時間複雜度是O(n)
第二個思路的代碼:
public class Solution {
public int FirstNotRepeatingChar(String str) {
if (str.length() ==0)
return -1;
int result =10001;
char[] tem =str.toCharArray();
int [] size = new int[123];
for(int i=0;i<tem.length;i++){
if (size[(byte)tem[i]] ==0){
size[(byte)tem[i]] = i+1;
}else {
size[(byte)tem[i]] =10001;
}
}
for (int i=65;i< size.length;i++){
if (size[i]!=0 && size[i] !=10001){
if (result >size[i])
result =size[i];
}
}
if (result ==10001)
return -1;
return result-1;
}
}