Java实现 蓝桥杯 算法训练 Bit Compressor(暴力)

该博客介绍了一种数据压缩方法,通过替换连续的n个1为n的二进制表示来压缩二进制串。文章讨论了如何使用Java编写程序,判断给定压缩串是否能唯一还原原始二进制串。根据输入的原串长度L,1的个数N,以及压缩后的串,输出结果可能是'YES'(唯一),'NO'(不存在),或'NOT UNIQUE'(不唯一)。
摘要由CSDN通过智能技术生成

试题 算法训练 Bit Compressor

问题描述
  数据压缩的目的是为了减少存储和交换数据时出现的冗余。这增加了有效数据的比重并提高了传输速率。有一种压缩二进制串的方法是这样的:
  将连续的n个1替换为n的二进制表示(注:替换发生当且仅当这种替换减少了二进制串的总长度)
  (译者注:连续的n个1的左右必须是0或者是串的开头、结尾)
  比如:11111111001001111111111111110011会被压缩成10000010011110011。原串长为32,被压缩后串长为17.
  这种方法的弊端在于,有时候解压缩算法会得到不止一个可能的原串,使得我们无法确定原串究竟是什么。请你写一个程序来判定我们能否利用压缩后的信息来确定原串。给出原串长L,原串中1的个数N,以及压缩后的串。
  L<=16 Kbytes,压缩后的串长度<=40 bits。
输入格式
  第一行两个整数L,N,含义同问题描述
  第二行一个二进制串,表示压缩后的串
输出格式
  输出"YES"或"NO"或"NOT UNIQUE"(不包含引号)
  分别表示:
  YES:原串唯一
  NO:原串不存在
  NOT UNIQUE:原串存在但不唯一

样例输入
样例132 26
10000010011110011
样例29 7
1010101
样例314 14
111111
样例输出
样例1:YES
样例2:NOT UNIQUE
样例3:NO
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
    
// 转自:	https://blog.csdn.net/a1439775520   
static  int l; 
static int n; 
    static int ans=0;
    static  int len; 
    static  
  • 16
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 26
    评论
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值