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 山風小子 閱讀(3485) 評論(11)  編輯  收藏 所屬分類: Groovy & GrailsAlgorithm
          主站蜘蛛池模板: 富源县| 万载县| 丽江市| 乐都县| 南召县| 漠河县| 三台县| 颍上县| 连平县| 庆城县| 公安县| 永年县| 柘荣县| 固始县| 扶沟县| 崇左市| 新津县| 府谷县| 吴旗县| 庄浪县| 金昌市| 榕江县| 桐梓县| 福泉市| 巴彦淖尔市| 雷波县| 吴川市| 无棣县| 武夷山市| 柞水县| 兖州市| 余江县| 平罗县| 云阳县| 嘉兴市| 平度市| 津南区| 鸡东县| 潜山县| 河池市| 灵山县|