团购网站怎么做,学校网站建设平台,绍兴企业网站建站模板,做泌尿科网站价格一、题目
在字符串 s 中找出第一个只出现一次的字符。如果没有#xff0c;返回一个单空格。 s 只包含小写字母。
二、示例
2.1 示例 1: 【输入】s abaccdeff 【输出】b 2.2 示例 2: 【输入】s 【输出】 限制#xff1a;
0 s 的…一、题目
在字符串 s 中找出第一个只出现一次的字符。如果没有返回一个单空格。 s 只包含小写字母。
二、示例
2.1 示例 1: 【输入】s abaccdeff 【输出】b 2.2 示例 2: 【输入】s 【输出】 限制
0 s 的长度 50000
三、解题思路
根据题目描述我们需要做到两点 【第1点】找出字符串 s 中每个字符的出现次数 【第2点】去重保存字符在 s 中的出现顺序 那么针对上面的两点我们创建两个变量 【int[] times】用于记录字符串 s 中每个字符的出现次数 【char[] order】用于记录字符串 s 中字符的出现顺序 具体的逻辑就是首先遍历字符串s中的所有字符然后保存在times中其中key存储的是字符value存储的是该字符出现的次数当发现某个字符第一次出现的时候就将其保存到order数组中
然后我们再遍历order数组并根据times中记录的每个字符的出现次数只要发现有字符出现次数是1次那么就作为方法结果返回即可。
下面以s abaccdeff为例详细了解一下具体的处理过程。请见下图所示 四、代码实现
class Solution {public char firstUniqChar(String s) {int index 0;int[] times new int[26];char[] order new char[26];for (char c : s.toCharArray()) {if (times[c - a] 0) order[index] c;times[c - a];}for (int i 0; i order.length; i)if (order[i] ! 0 times[order[i] - a] 1) return order[i];return ;}
} 今天的文章内容就这些了 写作不易笔者几个小时甚至数天完成的一篇文章只愿换来您几秒钟的 点赞 分享 。 更多技术干货欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享每天更新」