如何通过算法对齐两个二进制字符串中1的位置并实现编解码
二进制字符串映射与密钥生成方案需求
给定二进制字符串
string1: 1000 characters, 100 ones 0001000000010000010100000000000000100010000000000000000000000010100000001100100000000000101000010000001000100000000010000001001000000000000000000000000010000000000000000000000000000000001010001000000000000000000010000001000000000000000000001000000000000000000000000000000001001000000000000000000000000010001000000011000000000010000000010000000010000000001000010000000000010000000000000000000000000000000000000000001000000000000000001000000010000100000010010000000000000000000010000000000000010000000000000100000001000010100000001100000000100000010010100000000000001000110000000110001000100000000000010000000100000000000000000010000000000000000000000010000000000000000000000100000000000001000000110000000000000000001000000000000000000000000010000000000100000000010000000100010000000100000000000000000010000000000000000000010000000000100010000000000000000000000111110000000100000000000011000001000000000000000000010000000000000100000001000000100000000000010010000010000000000000000001000100000000000000
string2: 1000 characters, 30 ones 0000001000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000100000000000000001000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000001000000000000000000000000001100000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000001000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000010000000000000000000000000000000101000010000000000000000000000000000100100000000000001000000000000000010000000001000000000000010000001000000000000000000000000010000000000000000000000000000000000000000100000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001100000000000000000000000000000000000000000000000000
核心需求
- 将string2中的30个1,调整为与string1中任意30个1的位置完全匹配,得到转换后的string2'
- 生成的密钥仅允许包含0-9的数字,长度不得超过20位
- 密钥需支持双向转换:既能将原始string2编码为string2',也能将string2'解码还原为原始string2
需实现的函数
make_key(string1, string2) -> key encode(string2, key) -> string2' decode(string2', key) -> string2
已尝试的无效方法
- 旋转
- 模式搜索
- 零组移除
- 洗牌
寻求帮助
需要实现上述需求的思路(数学解法或创新思路均可),后续将自行编写算法代码,感谢提供帮助!
内容的提问来源于stack exchange,提问作者Mencey
相关产品推荐
相关产品推荐

