描述
牛牛是个连"1+1"都会答错的小迷糊,因此总被旺仔哥哥用头槌惩罚。这次旺仔哥哥准备了一套选择题测验,牛牛决定按照民间流传的秘诀来猜答案:
- 三长一短选最短
- 三短一长选最长
- 参差不齐选C
名词解释
- 三长一短:四个选项中恰好有一个选项的长度严格小于其他三个,且不存在一个选项的长度严格大于其他三个。
- 三短一长:四个选项中恰好有一个选项的长度严格大于其他三个,且不存在一个选项的长度严格小于其他三个。
- 参差不齐:既不满足"三长一短"也不满足"三短一长"的情况。
输入描述
第一行输入一个整数T(1 ≤ T ≤ 500),表示题目数量。
接下来T道题,每道题包含4行字符串,分别对应选项A、B、C、D。每个字符串长度不超过600,由可见字符(字母、数字、符号等)组成。输出描述
对于每道题,输出按照上述规则应选的选项字母(A、B、C或D),每个字母独占一行。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int T = scanner.nextInt();
// 读取nextInt()后的换行符,避免影响后续nextLine()读取
scanner.nextLine();
// 处理T道题目
for (int t = 0; t < T; t++) {
// 存储4个选项:每个元素是“选项字母+长度”的数组(0:字母,1:长度)
String[] optionA = {"A", scanner.nextLine()};
String[] optionB = {"B", scanner.nextLine()};
String[] optionC = {"C", scanner.nextLine()};
String[] optionD = {"D", scanner.nextLine()};
// 提取4个选项的长度
int lenA = optionA[1].length();
int lenB = optionB[1].length();
int lenC = optionC[1].length();
int lenD = optionD[1].length();
//存入数组
int[] lengths = {lenA, lenB, lenC, lenD};
// 步骤1:找到4个长度中的最小值(最短)和最大值(最长)
int minLen = lengths[0];
int maxLen = lengths[0];
for (int len : lengths) {
if (len < minLen) {
minLen = len;
}
if (len > maxLen) {
maxLen = len;
}
}
// 步骤2:统计最小值出现的次数(countMin)和最大值出现的次数(countMax)
int countMin = 0;
int countMax = 0;
for (int len : lengths) {
if (len == minLen) {
countMin++;
}
if (len == maxLen) {
countMax++;
}
}
// 步骤3:判断场景并选择答案
String answer = "";
// 场景1:三长一短(countMin=1且countMax≠1)
if (countMin == 1 && countMax != 1) {
// 找到长度等于minLen的选项
if (lenA == minLen) {
answer = "A";
} else if (lenB == minLen) {
answer = "B";
} else if (lenC == minLen) {
answer = "C";
} else {
answer = "D";
}
} else if (countMax == 1 && countMin != 1) {
// 场景2:三短一长(countMax=1且countMin≠1)
// 找到长度等于maxLen的选项
if (lenA == maxLen) {
answer = "A";
} else if (lenB == maxLen) {
answer = "B";
} else if (lenC == maxLen) {
answer = "C";
} else {
answer = "D";
}
} else {
// 场景3:参差不齐(其他情况)
answer = "C";
}
// 输出当前题目的答案
System.out.println(answer);
}
scanner.close();
}
}
1640

被折叠的 条评论
为什么被折叠?



