JAVA练习77-第一个只出现一次的字符
2022/2/4 1:15:52
本文主要是介绍JAVA练习77-第一个只出现一次的字符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例 1:
输入:s = "abaccdeff"
输出:'b'
示例 2:
输入:s = ""
输出:' '
限制:
- 0 <= s 的长度 <= 50000
分析:
方法1:哈希表
将每个字母出现的次数存入哈希表,然后在遍历哈希表找只出现一次的字母即可。
时间复杂度:O(n)
空间复杂度:O(C) C <= 26
class Solution { public char firstUniqChar(String s) { //定义哈希集合存储字符和出现数次 HashMap<Character, Integer> map = new HashMap<>(); //遍历字符串记录次数 for(char c: s.toCharArray()){ map.put(c, map.getOrDefault(c, 0) + 1); } //寻找只出现一次的字符 for(char c: s.toCharArray()){ if(map.get(c) == 1){ return c; } } return ' '; } }
方法2:数组
因为 s 只包含小写字母,因此 s 最多有 26 个字母,所以我们可以创建整形数组来存储对应字母出现的次数。
时间复杂度:O(n)
空间复杂度:O(C) C <= 26
class Solution { public char firstUniqChar(String s) { //定义数组存储字符和出现数次 int[] nums = new int[26]; //遍历字符串记录次数 for(char c: s.toCharArray()){ nums[c-'a']++; } //寻找只出现一次的字符 for(char c: s.toCharArray()){ if(nums[c-'a'] == 1){ return c; } } return ' '; } }
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof
这篇关于JAVA练习77-第一个只出现一次的字符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南