First they ignore you
          then they ridicule you
          then they fight you
          then you win
              -- Mahatma Gandhi
          Chinese => English     英文 => 中文             
          隨筆-221  評論-1047  文章-0  trackbacks-0
          寫一個算法生成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]


          題目來源:http://www.aygfsteel.com/copydogcn/archive/2008/04/19/194256.html

          附:朝花夕拾——Groovy & Grails
          posted on 2008-04-20 21:13 山風小子 閱讀(3488) 評論(11)  編輯  收藏 所屬分類: Groovy & GrailsAlgorithm
          主站蜘蛛池模板: 临安市| 伊春市| 武义县| 偏关县| 彭水| 运城市| 梨树县| 吐鲁番市| 安泽县| 黄冈市| 安乡县| 公安县| 贡觉县| 巴塘县| 克东县| 西华县| 金川县| 朔州市| 上蔡县| 将乐县| 临西县| 宜州市| 霸州市| 新和县| 博白县| 开化县| 喀什市| 罗城| 鄂州市| 汽车| 晋宁县| 仁化县| 黑水县| 凉山| 临漳县| 扬州市| 曲松县| 阿坝县| 青岛市| 马关县| 望都县|