This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

Ruby solution

By: a guest on Aug 19th, 2012  |  syntax: Ruby  |  size: 1.86 KB  |  views: 22  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. def letterconv(letter)
  2.         larr = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
  3.         narr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]
  4.         i = 0
  5.         while i < larr.length
  6.                 if letter == larr[i]
  7.                         return narr[i]
  8.                 end
  9.                 i += 1
  10.         end
  11. end
  12.  
  13. def gen_key_string(key,istr)
  14.         istr = istr.gsub(" ",'')
  15.         key = key.gsub(" ",'')
  16.         istr = istr.upcase
  17.         key = key.upcase
  18.         karr = key.split(//)
  19.         nkarr = []
  20.         p = 0
  21.         while nkarr.length < istr.length
  22.                 p = 0
  23.                 while p < karr.length
  24.                         if nkarr.length == istr.length
  25.                                 break
  26.                         else
  27.                                 nkarr << karr[p]
  28.                                 p += 1
  29.                         end
  30.                 end
  31.         end
  32.         return nkarr
  33. end
  34.  
  35. def strconv(strarr)
  36.         narr = []
  37.         i = 0
  38.         while i < strarr.length
  39.                 narr << letterconv(strarr[i])
  40.                 i += 1
  41.         end
  42.         return narr    
  43. end
  44.  
  45. def stradd(strarr1,strarr2)
  46.         i = 0
  47.         narr = []
  48.         while i < strarr1.length
  49.                 narr << strarr1[i] + strarr2[i]
  50.                 i += 1
  51.         end
  52.         return narr
  53. end
  54.  
  55. def strshort(strarr)
  56.         i = 0
  57.         narr = []
  58.         while i < strarr.length
  59.                 bit = strarr[i]
  60.                 if bit > 26
  61.                         bit = bit - 26
  62.                         narr << bit
  63.                 else
  64.                         narr << bit
  65.                 end
  66.                 i += 1
  67.         end
  68.         return narr
  69. end
  70.  
  71. def numconv(num)
  72.         larr = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
  73.         narr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]
  74.         i = 0
  75.         while i < narr.length
  76.                 if num == narr[i]
  77.                         return larr[i]
  78.                 end
  79.                 i += 1
  80.         end
  81. end
  82.  
  83. def strconv2(strarr)
  84.         narr = []
  85.         i = 0
  86.         while i < strarr.length
  87.                 narr << numconv(strarr[i])
  88.                 i += 1
  89.         end
  90.         return narr    
  91. end
  92.  
  93. ostr = "this is a complex string"
  94. osstr = ostr.upcase.gsub(" ","").split(//)
  95. key = "hello world"
  96. narr = gen_key_string(key,ostr)
  97. nosstr =  strconv(osstr)
  98. nnarr = strconv(narr)
  99. narr3 = stradd(nosstr,nnarr)
  100. narr4 = strshort(narr3)
  101. narr5 = strconv2(narr4)
  102. puts narr5
clone this paste RAW Paste Data