题解 | #找出字符串中第一个只出现一次的字符#
找出字符串中第一个只出现一次的字符
https://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4
Java实现,使用LinkedHashMap
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 使用LinkedHashMap,统计字符出现次数的同时能保持添加的先后顺序 String s = br.readLine(); Map<Character, Integer> map = new LinkedHashMap<>(); // 遍历字符串,统计每种字符出现的次数 for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); if (map.containsKey(ch)) { map.put(ch, map.get(ch) + 1); } else { map.put(ch, 1); } } // 遍历LinkedHashMap,如果字符的出现次数为1,则输出(保证是第一个出现次数为1的字符) for (char ch : map.keySet()) { if (map.get(ch) == 1) { System.out.println(ch); return; } } // 字符的出现次数都大于1 System.out.println("-1"); } }