輸入數據一個字符串,包括字母,數字等。
輸出首先出現三次的那個英文字符
思路:遇到幾回或者記錄下標的算法題,我通常都會想到用hashmap,key是字符,value是次數,這個題給出的是個字符串也就是個字符數組,咱們挨個把數組的元素往map裏添加,每一次put
先檢查map是否有此字符若是沒有,直接put進去,key爲此元素,value爲1,若是有,則get出key的目前次數,而後如今次數是目前次數加1,把這個key remove 而後再put進去,這樣一來,
key 的value值就加1了,這時候在判斷,value是否爲3,若是是3,再次判斷此元素是不是字符,若是是則輸出,若是不是繼續下一個。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char[] ch = str.toCharArray();//將字符串變成字符數組
HashMap<Character,Integer> map = new HashMap<>();
for(int i=0;i<ch.length;i++){//挨個往map裏放
if(map.containsKey(ch[i])){//含有此元素
int current = map.get(ch[i]);//獲得次元素的出現次數
map.remove(ch[i]);//移除此元素
map.put(ch[i],current+1);將次數加1再次put進去
if(map.get(ch[i])==3){//若是次數是3
if(Character.isLetter(ch[i])){//是不是字符
System.out.println(ch[i]);//是,則輸出
break;}
}
}else{
map.put(ch[i],1);//不含此元素,直接put進去,key=此元素 value=1
}
}
}}java