首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

一路Google算法题的解答

2012-12-25 
一道Google算法题的解答写一个算法生成n位编码的编码串(结果有多种,任意一种都可以接受)并且符合如下条件:

一道Google算法题的解答

写一个算法生成n位编码的编码串(结果有多种,任意一种都可以接受)并且符合如下条件:相邻的两个编码之间有且只能有一位不同,并给出时间与空间复杂度

比如 2位的二进制的编码生成的编码串:00 01 11 10
比如 3位的二进制编码生成的编码串:001 011 111 101 100 110 010 000

Groovy实现:
List generateBinaryStrings(int?length) {
????if?(1?==?length)?return?['0',?'1']
???? List tempBinaryStrings?=?generateBinaryStrings(length?-?1)
????return?[tempBinaryStrings.collect{?"0$it"?}, tempBinaryStrings.reverse().collect{?"1$it"?}].flatten()
}

println generateBinaryStrings(2)
println generateBinaryStrings(3)
运行结果:
[00, 01, 11, 10]
[000, 001, 011, 010, 110, 111, 101, 100]

热点排行