• 华为od机试计算误码率(Java)


     

    import java.util.Scanner;

    /**
    * 计算误码率问题
    * 输入和输出的码相对比出错的字数和总字数相除
    * 例:输入为2A3B4D1Z 2A1C2B4D1Z 解压后为AABBBDDDDZ AACBBDDDDZ
    * 解压前不一定相同,解压后字数相同
    */
    public class CodeErrorRate {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    char[] pre = scanner.nextLine().toCharArray();//传输前字符串 存入char数组中
    char[] aft = scanner.nextLine().toCharArray();//传输后字符串
    // List prezip = null;
    // List aftzip = null;
    char[] prezip = new char[100000];//前解压 待存。。。
    char[] aftzip = new char[100000];//后解压
    int tag=0;
    for (int i = 0; i < pre.length >>> 1; i++) {
    //循环1/2 总字符次
    //(int)pre[2*i] 不可以这样写,必须要先进行转码,‘1’ 和1是不同的。
    char a = pre[2 * i];
    String b = String.valueOf(a);
    int c = Integer.parseInt(b);
    for (int j = 0; j < c; j++) {//循环字母前数字值次
    // prezip.add((int) pre[i+1]);
    prezip[tag] = pre[2 * i + 1];//将拿到的字母存入待存数组中
    tag += 1;
    }
    }
    int tag1 = 0;
    for (int i = 0; i < aft.length >>> 1; i++) {
    //循环1/2 总字符次
    char a = aft[2 * i];
    String b = String.valueOf(a);
    int c = Integer.parseInt(b);
    for (int j = 0; j
    // prezip.add((int) pre[i+1]);
    aftzip[tag1] = aft[2 * i + 1];//将拿到的字母存入待存数组中
    tag1 += 1;
    }
    }
    //开始比对字符串

    double count = 0.00;
    // double rate = 0.00;
    for (int i = 0; i < prezip.length; i++) {//比对总字符次
    if (!(prezip[i] == '\0')&&prezip[i]==aftzip[i]){
    count++;
    }
    }
    double count1 = 0.00;
    for (int i = 0; i < prezip.length; i++) {
    if (!(prezip[i] == '\0')){
    count1 += 1;
    }
    }
    String rate = count+"/"+count1;

    }

    }

  • 相关阅读:
    jQuery之Ajax
    通用分页02
    RK3588 实现温控风扇之pwm驱动调试(二)
    ARM接口编程—GPIO(exynox 4412平台)
    【XR806开发板试用】XR806简单使用GPIO命令通过继电器远程控制其它开发板
    【K8S专栏】什么是云原生?
    面向对象的三大特性之——继承
    使用Tomcat Maven插件产生的疑惑
    状态管理 Pinia
    Java设计模式-状态模式
  • 原文地址:https://blog.csdn.net/2301_79325314/article/details/132624205