用哈希表解决问题(算法)

37 阅读1分钟

1.

(1)题目:

(2)题解:

import java.util.*;
class main{
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		String string=scanner.next(),endString="";
		int[] abcarr=new int[26];
		int max=1;
		for(int i=0;i<string.length();i++) {
			abcarr[string.charAt(i)-'A']++;//在每个字母的表上打个数标识
		}
		for(int i=0;i<26;i++) {
			if(max<abcarr[i]) {
				max=abcarr[i];
				endString=(char)(i+'A')+"";//转回字母的方法
			}else if(max==abcarr[i]) {
				endString+=(char)(i+'A');
			}
		}
		System.out.print(endString);
	}
}

 2.

(1)题目:

(2)题解:

import java.util.*;
class main{
	public static void main(String[] args) {
		int[] narr=new int[10];
		Arrays.fill(narr,2021);
		int num=1;
		boolean flag=true;
		while(flag) {
			char[] newarr=String.valueOf(num).toCharArray();//将字符串转成数组的形式
			for(char c:newarr) {
				if(narr[c-'0']>0) {//哈希表得出所在的位置
					narr[c-'0']--;		
				}else {
					flag=false;
				}
			}
			num++;
		}
		System.out.print(num);
	}
}