function reverse1(str) { let r = ""; for (let i = str.length - 1; i >= 0; i--) { r += str[i]; } return r; } console.log(reverse1("I like this program very much"));salida: // hcum yrev margorp siht ekil I
pero salida esperada: I ekil siht margorp yrev hcum
por favor alguien puede responder a esto....???
Atraviesa la cadena original e invierte las palabras individuales.
function reverseUtil(str) { let r = ""; for (let i = str.length - 1; i >=0; i--) { r += str[i]; } return r; } function reverse1(str) { let r = "", tmp = ""; for (let i = 0; i < str.length; i++) { if (str[i] == ' ') { r += reverseUtil(tmp) + ' '; tmp = ""; } else tmp += str[i]; } // last word r += reverseUtil(tmp); return r; } console.log(reverse1("I like this program very much"));Estás invirtiendo toda la cadena. Si desea utilizar una sola función y suponiendo que la cadena solo contiene espacios, puede recorrer todos los caracteres de la cadena.
Si encuentra un espacio, puede agregarlo al resultado. Si encuentra otro carácter, puede anteponerlo a una cadena temporal para crear una versión invertida de la palabra.
Luego agregue la versión invertida de word al resultado cuando el siguiente carácter sea un espacio o cuando sea el último carácter de la iteración.
function reverse1(str) { let result = "", tmp = ""; for (let i = 0; i < str.length; i++) { if (str[i] === ' ') { result += ' '; continue; } tmp = str[i] + tmp; if (str[i + 1] === undefined || str[i + 1] === ' ') { result += tmp; tmp = ""; } } return result; } console.log(reverse1("I like this program very much")); console.log(reverse1(" I like this program very much ")); console.log(reverse1("abc"));