Estoy trabajando en un problema para resolver una funcionalidad de Polybius Square. Tengo problemas para descubrir cómo crear una función de cuadrado de Polybius. con las siguientes instrucciones:
La función polybius() en el archivo src/polybius.js tiene dos parámetros:
input se refiere al texto ingresado para ser codificado o decodificado. codificar se refiere a si debe codificar o decodificar el mensaje. De forma predeterminada, se establece en verdadero. Al crear la función, tenga en cuenta las siguientes restricciones y reglas:
Puede asumir que no se incluirán símbolos adicionales como parte de la entrada. Solo se incluirán espacios y letras. Al codificar, su salida aún debe ser una cadena. Al decodificar, la cantidad de caracteres en la cadena, excluyendo los espacios, debe ser par. De lo contrario, devuelve falso. Los espacios deben mantenerse en todo momento. Las mayúsculas se pueden ignorar. Las letras "I" y "J" comparten un espacio. Al codificar, ambas letras se pueden convertir a 42, pero al decodificar, ambas letras deben mostrarse de alguna manera.
y básicamente, llegué aquí con mi código:
const cipher = (input, encode = true) => { const direction = encode ? encoder : decoder; return input .match(/[0-9]{2}|[az]|\s/g) .map(character => direction[character] || character) .join(''); };pero no sé cómo haría esto para la excepción i/j cuando estoy decodificando una cadena. ¿Alguna idea?
const encoder = { 'a': '11', 'b': '12', 'c': '13', 'd': '14', 'e': '15', 'f': '21', 'g': '22', 'h': '23', 'i/j': '24', 'k': '25', 'l': '31', 'm': '32', 'n': '33', 'o': '34', 'p': '35', 'q': '41', 'r': '42', 's': '43', 't': '44', 'u': '45', 'v': '51', 'w': '52', 'x': '53', 'y': '54', 'z': '55' }; const decoder = { '11': 'a', '12': 'b', '13': 'c', '14': 'd', '15': 'e', '21': 'f', '22': 'g', '23': 'h', '24': 'i/j', '25': 'k', '31': 'l', '32': 'm', '33': 'n', '34': 'o', '35': 'p', '41': 'q', '42': 'r', '43': 's', '44': 't', '45': 'u', '51': 'v', '52': 'w', '53': 'x', '54': 'y', '55': 'z' };TL: DR -> Necesito descubrir cómo usar la función .map para la excepción i/j para decodificar una cadena de polybius
Prueba con estos:
var txt=txt.toLowerCase().replace('j','i') var r='' for(var a=0;a0){ if(t.substr(0,1)==' '){ r+=' ' c=1 }