字节青训营 选择题反选效果分析

选择题反选效果分析

问题描述

小U正在检查某同学的选择题答案。试卷共有 n 道题目,每道题目只有两个选项 A 和 B。当前小U手上有两组答案:

  1. s:该同学的原始答案。
  2. t:标准答案。

小U想知道,如果将该同学的所有答案都反选(即:如果某题的答案是 A 则改成 B,如果是 B 则改成 A),那么在反选之后,正确的答案数量是否会增加?具体结果有三种可能:

  1. 如果反选后的正确答案数 增加,输出 "yes"。
  2. 如果反选后的正确答案数 不变,输出 "draw"。
  3. 如果反选后的正确答案数 减少,输出 "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"));
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值