Skip to content

Instantly share code, notes, and snippets.

@michalfita
Created December 28, 2021 19:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michalfita/e4bcf342aab127a0e587c68330f1b632 to your computer and use it in GitHub Desktop.
Save michalfita/e4bcf342aab127a0e587c68330f1b632 to your computer and use it in GitHub Desktop.
Ruby solution to conversion of text & digits into a phone number or back (bidirectional conversion)
def kpcnv(text)
letters = ["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"," "]
numbers = [ 2 , 2, 2 , 3 , 3 , 3 , 4 , 4 , 4 , 5 , 5 , 5 , 6 , 6 , 6 , 7 , 7 , 7 , 7 , 8 , 8 , 8 , 9 , 9 , 9 , 9 , 0 ]
output = String.new()
for ti in 0..text.length-1
l = text[ti]
if l.ord >= 48 and l.ord <= 57 then
for ni in 0..numbers.length-1
if numbers[ni] == l.to_i
output << letters[ni]
break
end
end
else
for li in 0..letters.length-1
if letters[li] == l then
output << numbers[li].to_s
end
end
end
end
print output
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment