题目描述:
链接:牛客
找出字符串中第一个只出现一次的字符.
输入描述:
输入几个非空字符串
输出描述:
输出第一个只出现一次的字符,如果不存在输出-1
示例:
输入
asdfasdfo
aabb
输出
o
-1
解题思路:
1.将输入字符串转化为字符数组并将每个元素存入HashMap中;
2.拿到数组中的每个元素在HashMap中对应的value值,若value==1则输出该字符并改变flag == true(避免退出循环后继续打印-1),break结束循环,循环结束后若flag ==true,则说明该字符串中没有单独的字符串则打印-1;
代码如下:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String str = sc.nextLine();
char[] ch = str.toCharArray();
HashMap<Character,Integer> map = new HashMap<>();
for(char x : ch){
map.put(x,map.getOrDefault(x,0)+1);
}
boolean flag = true;
for(char x : ch){
if(map.get(x) == 1){
System.out.println(x);
flag = false;
break;
}
}
if(flag){
System.out.println(-1);
}
}
}
}