Question

Formatted question description: https://leetcode.ca/all/387.html

 387	First Unique Character in a String

 Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.

 Examples:

 s = "leetcode"
 return 0.

 s = "loveleetcode",
 return 2.

 Note: You may assume the string contain only lowercase letters.

Algorithm

The hash table builds a mapping between each character and its number of occurrences, and then traverses the string in order, finds the first character with a number of occurrences of 1, and returns its position.

Code

Java

public class First_Unique_Character_in_a_String {

    public static void main (String[] args) {
        First_Unique_Character_in_a_String out = new First_Unique_Character_in_a_String();
        Solution s = out.new Solution();

        System.out.println(s.firstUniqChar("loveleetcode"));
    }

    class Solution {
        public int firstUniqChar(String s) {

            if (s == null || s.length() == 0) {
                return -1;
            }

            // unique[i] meaning index i has no duplicate
            int[] count = new int[256];

            for (char each: s.toCharArray()) {
                count[each] += 1;
            }

            for (int i = 0; i < s.length(); i++) {
                if (count[s.charAt(i)] == 1) {
                    return i;
                }
            }

            return -1;
        }
    }
}

All Problems

All Solutions