面试题50. 第一个只出现一次的字符
package leetcode; import java.util.HashMap; import java.util.HashSet; public class offer_50 { public char firstUniqChar1(String s) { HashSet<Character>set=new HashSet<Character>(); //如果存在相同的字符用空格代替 for(int i=0;i<s.length();i++) { if(!set.contains(s.charAt(i))) { set.add(s.charAt(i)); }else { s=s.replace(s.charAt(i), ' '); } } //找出第一个非空格的字符 for(int i=0;i<s.length();i++) { if(s.charAt(i)!=' ') {return s.charAt(i);} } return ' '; } public char firstUniqChar2(String s) { HashMap<Character, Integer> map=new HashMap<Character, Integer>(); //将每个字符和其数量存入map 集合中 for(int i=0;i<s.length();i++) { int count=1; if(map.containsKey(s.charAt(i))) { count=count+1; } map.put(s.charAt(i), count); } //找出集合中value第一个为1的字符 for(int i=0;i<s.length();i++) { if(map.get(s.charAt(i))==1) {return s.charAt(i);} } return ' '; } public static void main(String[] args) { // TODO Auto-generated method stub offer_50 off=new offer_50(); System.out.println(off.firstUniqChar1("aabccdeffb")); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端