计算误码率

题目描述

误码率 是最常用的数据通信传输质量指标。它可以理解为“在多少位数据中出现一位差错”。

移动通信网络中的误码率主要是指比特误码率,其计算公式如下:比特误码率=错误比特数/传输总比特数,为了简单,我们使用字符串来标识通信的信息,一个字符错误了,就认为出现了一个误码输入一个标准的字符串,和一个传输后的字符串,计算误码率

字符串会被压缩,

例:"2A3B4D5X1Z"表示"AABBBDDDDXXXXXZ"用例会保证两个输入字符串解压后长度一致,解压前的长度不一定一致

每个生成后的字符串长度<100000000。

输入描述

两行,分别为两种字符串的压缩形式。每行字符串(压缩后的)长度<100000

输出描述

一行,错误的字等数量/展开后的总长度

备注

注意:展开后的字符串不含数字

用例1

输入
3A3B
2A4B
输出
1/6
说明
无

用例2

输入
5Y5Z
5Y5Z
输出
0/10
说明
无

用例3

输入
4Y5Z
9Y
输出
5/9
说明
无

用例4

输入
4Y5Z
9Y
输出
5/9
说明
无

题目解析:

解题思路

1、将压缩的数据全部解析完比较不同的数量【由于解压之后数据量可能很大,会导致超时问题】
2、直接比较压缩的数据:
① 拆分压缩的数据放入队列中:
例如:
str1 : 4Y5Z -> queue: [‘4Y’,‘5Z’]
str2 : 9Y -> queue: [‘9Y’]
② 从队列中不断去取数据,比较【先比较数字大小一致,再比较字符是否一致】之后多余部分再写入队列中,将不同的部分写入队列中
str1 : queue: [‘5Z’]
str2 : queue: [‘5Y’]

java实现

package com.HW;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;

/**
 * @ClassName : T001
 * @Author : kele
 * @Date: 2023/10/22 9:09
 * @Description :
 */
public class T001 {
   

    public static int err =

你可能感兴趣的:(华为od,华为od)