import java.util.*;
class Main {
public static void main(String[] args) {
System.out.println(new Main().nonRepeatingCharacter("hello"));
System.out.println(new Main().nonRepeatingCharacter("abbazz"));
System.out.println(new Main().nonRepeatingCharacter("abbqqad"));
System.out.println(new Main().nonRepeatingCharacter(""));
}
public String nonRepeatingCharacter(String s){
if(s.isEmpty()){
return "None";
}
Map<Character, Integer> charMap = new HashMap<>();
for(int i = 0 ; i< s.length(); i++){
char ch = s.charAt(i);
if(charMap.get(ch)==null){
charMap.put(ch,1);
}
else{
Integer value = charMap.get(ch);
charMap.put(ch,++value);
}
}
for(int i =0 ; i<s.length(); i++){
if(charMap.get(s.charAt(i))==1){
return String.valueOf(s.charAt(i));
}
}
return "None";
}
}
// I can ask, lower and upper case
// edge cases like empty string