昨天在北大有个google招聘会
听别人说的有个题目是这样的:
昨日google笔试最后一题,n位编码的海明码生成:
长度为n的二进编码,有2^n次方不同的编码,题目要求产生的编码串是有这2^n个不同编码组成,并且符合如下条件:相邻的两个编码之间有且只能有一位不同
比如 2位的二进制的编码生成的编码串:00 01 11 10
比如 3位的二进制编码生成的编码串:001 011 111 101 100 110 010 000
写一个算法生成n位编码的编码串(结果有多种,任意一种都可以接受),并给出时间与空间复杂度
就是一个n位的二进制码一共有2^n种不同的编码,要产生的这个编码是由那2^n个不同的编码组成,并且相邻的2个编码之间有且只有在1个位上面不同
比如 3位的2进制编码有8种,生成的一种可能的答案如下:
001 011 111 101 100 110 010 000