Find the first un-repeated character in a string

后端 未结 30 1298
猫巷女王i
猫巷女王i 2020-11-27 18:29

What is the quickest way to find the first character which only appears once in a string?

30条回答
  •  温柔的废话
    2020-11-27 19:16

    Here is one more solution with o(n) time complexity.

    public void findUnique(String string) {
        ArrayList uniqueList = new ArrayList<>();
        int[] chatArr = new int[128];
        for (int i = 0; i < string.length(); i++) {
            Character ch = string.charAt(i);
            if (chatArr[ch] != -1) {
                chatArr[ch] = -1;
                uniqueList.add(ch);
            } else {
                uniqueList.remove(ch);
            }
        }
        if (uniqueList.size() == 0) {
            System.out.println("No unique character found!");
        } else {
            System.out.println("First unique character is :" + uniqueList.get(0));
        }
    }
    

提交回复
热议问题