题目描述
误码率 是最常用的数据通信传输质量指标。它可以理解为“在多少位数据中出现一位差错”。
移动通信网络中的误码率主要是指比特误码率,其计算公式如下:比特误码率=错误比特数/传输总比特数,为了简单,我们使用字符串来标识通信的信息,一个字符错误了,就认为出现了一个误码输入一个标准的字符串,和一个传输后的字符串,计算误码率
字符串会被压缩,
例:"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 =