美文网首页leetcode 剑指 offer
剑指 Offer 50. 第一个只出现一次的字符

剑指 Offer 50. 第一个只出现一次的字符

作者: 历十九喵喵喵 | 来源:发表于2020-07-01 03:33 被阅读0次

题目描述:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

题解:使用 数组 ,两个 for 循环。看到挺多 人用 Map 或者 HashMap 但是我还不太熟悉这两个,等以后接触了再更新。

使用数组,首先创建一个 整数数组,一次for 循环用来存放字符串中每个字符出现的次数,再用一次 for 循环 遍历字符串中只出现一次的 字符,有则返回该字符,若没有,说明 字符串中没有只出现一次的 字符。

关于 int[] 的长度设置为 256 ,有大佬解释为按照扩展的 ASCII  ,最多能有 256个。

public class firstUniqChar {

    public char firstUniqChar(String s) {

        int[] count = new int[256];

        char[] chars = s.toCharArray();

        for(char c : chars)

            count[c]++;

        for(char c : chars){

            if(count[c] == 1)

                return c;

        }

        return ' ';

    }

}

相关文章

网友评论

    本文标题:剑指 Offer 50. 第一个只出现一次的字符

    本文链接:https://www.haomeiwen.com/subject/gasqqktx.html