题解 | #找出字符串中第一个只出现一次的字符#
找出字符串中第一个只出现一次的字符
https://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4
import java.io.*; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String str = in.readLine(); // 总共126个字符,建立两个数组 //一个记录出现次数(用下标表示字符),另一个记录出现顺序(用下标表示出现顺序) //记录次数 byte w[] = new byte[126]; //记录顺序 char s[] = new char[126]; byte k = 0; for (byte i = 0; i < str.length(); i++) { char c = str.charAt(i); w[c]++; //c第一次出现 if (w[c] == 1) { //记录出现顺序 s[k++] = c; } } //按出现顺序遍历,选择数量为1的 for (byte j = 0; j < k; j++) { char c1 = s[j]; if (w[c1] == 1) { System.out.print(c1); return; } } System.out.print(-1); } }