找到字符串第一個不重復的字符並返回其下標
案例:
輸入:s = "leetcode"
返回 0.
輸入:s = "loveleetcode",
返回 2.
假設我們輸入都是小寫字母
解題思路:定義一個數組arr,數組大小為26,初始化為0,數組的值表示26個字符中出現的次數,最后遍歷字符串,將第一個出現一次的字符返回。
代碼如下:
public static int firstUniqChar(String s) { char[] chars = s.toCharArray(); int len = chars.length; //定義數組長度為26,表示26個字母 0-25 分別表示a-z的位置 int[] arr = new int[26]; int count = 1; //遍歷字符數組,任何一個字母出現一次,都在arr數組對應位置加1 for(int i = 0;i<len;i++) { arr[chars[i] - 'a'] += count; } for(int i = 0;i<len;i++) { if(arr[chars[i] - 'a'] == 1) return i; } return -1; }