题目描述:
集五福作为近年来⼤家喜闻乐⻅迎新春活动,集合爱国福、富强福、和谐福、友善福、敬业福即可分享超⼤红包
以0和1组成的⻓度为5的字符串代表每个⼈所得到的福卡,每⼀位代表⼀种福卡,1表示已经获得该福卡,单类型福卡不超过1张,随机抽取⼀个不超过10⼈团队,求 :该团队最多可以集⻬多少套五福
输入描述:
输⼊类似11010,00110,由0、1组成的⻓度为5的字符串,代表指定团队中每个⼈福卡获得情况 注 意1:1⼈也可以是⼀个团队
注意2:多⼈之间的福卡以英⽂逗号隔开
输出描述:
输出该团队能凑⻬多少套五福
示例1:
输入:
11001,11100
输出:
0
import java.io.IOException;
import java.util.*;
public class Test {
public static void main(String[] args)throws IOException {
Scanner sc = new Scanner(System.in);
// 1、控制台输入每个人的福卡获得情况
String s = sc.nextLine();
// 2、判断输入是否为空
if(s.length() == 0) {
System.out.println("团队不能为空");
return ;
}
// 3、统计团队人数
String [] strArr = s.split(",");
System.out.println(Arrays.toString(strArr));
int strArrLen = strArr.length;
// 4、判断输入的是否合理
// 4.1 团队是否大于10人
if(strArrLen >10){
System.out.println("团队不能大于10");
}
// 4.2 存放所有人每种福卡的数量,共有5种,所以长度为5
int[] tempCount = new int[5];
// 5、统计所有人的每种类型的福卡总数,外层循环为福卡的类型
for(int i=0; i<5; i++){
// 5.1 内循环为每个人拥有的五张福卡
for (String s1 : strArr) {
// 5.2 如果一个人没有5种类型的福卡,结束
if(s1.length()!=5){
System.out.println("您输入的福卡" + s1 + "类型不正确,请重新输入");
return ;
}
// 5.3 每个人获取每种类型的福卡数量是否等于0或者1,都不是则结束
else if ( s1.charAt(i)!='0' && s1.charAt(i) != '1'){
System.out.println("您输入的福卡" + s1 + "张数不正确,请重新输入");
return;
// 5.4 否则把每个人相同类型的福卡数相加
}else{
tempCount[i] += Integer.valueOf(s1.substring(i,i+1));
}
}
}
System.out.println(Arrays.toString(tempCount));
// 6、排序后取福卡的最小值
Arrays.sort(tempCount);
System.out.println("该团队能凑⻬" + tempCount[0]+"套福卡");
}