选择题反选效果分析
问题描述
小U正在检查某同学的选择题答案。试卷共有 n
道题目,每道题目只有两个选项 A
和 B
。当前小U手上有两组答案:
s
:该同学的原始答案。t
:标准答案。
小U想知道,如果将该同学的所有答案都反选(即:如果某题的答案是 A
则改成 B
,如果是 B
则改成 A
),那么在反选之后,正确的答案数量是否会增加?具体结果有三种可能:
- 如果反选后的正确答案数 增加,输出 "yes"。
- 如果反选后的正确答案数 不变,输出 "draw"。
- 如果反选后的正确答案数 减少,输出 "no"。
测试样例
样例1:
输入:
n = 2,s = "AB",t = "AA"
输出:'draw'
样例2:
输入:
n = 3,s = "BAA",t = "ABB"
输出:'yes'
样例3:
输入:
n = 4,s = "ABAB",t = "BABA"
输出:'yes'
解析:统计反转前后答案的正确数量,再对比一下即可
public class Main {
public static String solution(int n, String s, String t) {
char[] ans = t.toCharArray();
//先统计一遍原来的正确答案
char[] old = s.toCharArray();
int oldcount=0;
for(int i=0;i<ans.length;i++){
if(ans[i]==old[i]){
oldcount++;
}
}
//反转答案
int newcount=0;
char []newa=new char[old.length];
for(int i=0;i<old.length;i++){
if(old[i]=='A'){
newa[i]='B';
}else if (old[i]=='B'){
newa[i]='A';
}
}
//再统计一遍反转的正确答案
for(int i=0;i<ans.length;i++){
if(ans[i]==newa[i]){
newcount++;
}
}
if(newcount>oldcount){
return "yes";
}else if (newcount==oldcount){
return "draw";
}else{
return "no";
}
}
public static void main(String[] args) {
System.out.println(solution(2, "AB", "AA").equals("draw"));
System.out.println(solution(3, "BAA", "ABB").equals("yes"));
System.out.println(solution(4, "ABAB", "BABA").equals("yes"));
}
}