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

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

示例:

s = "abaccdeff"
返回 "b"

s = "" 
返回 " "
 

限制:

0 <= s 的长度 <= 50000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    public char firstUniqChar(String s) {
       LinkedHashMap<Character,Boolean> list = new LinkedHashMap<>();
        for (char c : s.toCharArray()) {
            if(list.containsKey(c)){
                list.replace(c,false);
            }else{
                list.put(c,true);
            }
        }
        for (Map.Entry<Character, Boolean> characterBooleanEntry : list.entrySet()) {
            if(characterBooleanEntry.getValue()){
               return characterBooleanEntry.getKey();
                
            }
        }
        return ' ';
    }
}

重点,第一个,只出现一次。

找出第一个说明结果需要有先后顺序,而且每个字符还需要标记其是否只出现一次。

① 简单的办法

可以使用一个数组,每个字符都有其对应的ASCII码,那么就可以使用这个字符作为数组下标,遍历字符串,存入数组值。然后遍历字符串,数组中第一个值为1的为第一个只出现一次的字符。

② 使用数据结构的方法

使用map,map的数据结构为key-value类型,类似于数组的下标对应的值,但是map适用性与可扩展性更强一点。代码如上。


专注力,提升专注力是提升学习效率做好的方法。例如听课时,可以边听边重复老师说的某个关键词,带着问题去看书学习,多问几个问什么。就像是在射箭时,有了一个明确的靶心,你就可以把全部精力放到这个靶心上,更少地走神。

走神并不代表你没有专注,注意到了自己走神并且能够迅速把自己的注意力拉回来,让自己重新专注于这个事情,不断反复不断训练,专注的时间自然会越来越长。

专注也与自身精力,身体健康有很大的关系,所以要多运动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值