算法-找出字符串中第一个只出现一次的字符
题目描述
找出字符串中第一个只出现一次的字符
输入描述:
输入一个非空字符串
输出描述:
输出第一个只出现一次的字符,如果不存在输出-1
示例1
输入:
asdfasdfo
输出:
o
来源:牛客网
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
while(input.hasNext()){
String str = input.nextLine();
Map<Character, Integer> mp = new HashMap<>();
for(int i = 0; i < str.length(); i++){
if(mp.containsKey((Character)str.charAt(i))){
int temp = mp.get((Character)str.charAt(i)) + 1;
mp.put((Character)str.charAt(i), temp);
}
else{
mp.put((Character)str.charAt(i),1);
}
}
String result = "";
String storeLetters = "";
for(Character k : mp.keySet()){
if(mp.get(k) == 1){
storeLetters = storeLetters + String.valueOf(k);
}
}
if(storeLetters.equals("")){result = "-1";}
else{
int flag = str.indexOf(storeLetters.charAt(0));
for(int m = 0; m < storeLetters.length(); m++){
if(flag > str.indexOf(storeLetters.charAt(m))){
flag = str.indexOf(storeLetters.charAt(m));
}
}
result = String.valueOf(str.charAt(flag));
}
System.out.println(result);
}
}
}