题解 | #找出字符串中第一个只出现一次的字符#
找出字符串中第一个只出现一次的字符
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);
}
}
查看3道真题和解析