He estado probando las preguntas de la FCC recientemente, al igual que actualizar para luchar contra los monstruos, he pasado un nivel a la vez, lo cual es bastante atractivo para mí. Hoy me tomé el tiempo para hacer la parte del algoritmo básico. Según algunos consejos, es relativamente simple. Creo que vale la pena aprender los métodos para manejar algunas preguntas. Por ejemplo, a veces tienes que procesar un personaje en un proyecto. Si no puede pensar en algunos métodos relacionados, es bastante problemático. Entonces, grátalo aquí. Si encuentra algunos caracteres o procesamiento de matriz en el futuro, puede buscar este artículo, con la esperanza de obtener algunas indicaciones en lugar de traducir el documento.
Si ve a este blogger, si tiene un código o buenas ideas cada vez más simples, deje un mensaje para comunicarse (siempre creo que solo aprendiendo el excelente código de otras personas puede hacer un progreso más rápido y un pensamiento más flexible). Para los principiantes, intente hacerlo usted mismo sin mirar el código. (Las siguientes preguntas no necesitan considerar los tipos de parámetros. Estrictamente hablando, se debe hacer un juicio sobre los tipos de parámetros, por ejemplo, typeof (arg) === número)
1. Reverse una cadena
Cadena
Primero convierta la cadena en una matriz, luego use el método inverso de la matriz para voltear el orden de la matriz y finalmente convierta la matriz en una cadena.
Tu resultado debe ser una cadena
function reverseString (str) {str = str.split (''). inverso (). Join (''); return str;} reverseString ("hola");2. Verifique los palíndromos
Si la cadena dada es Palindrome, devuelva verdadero, de lo contrario, falso.
Si una cadena ignora la puntuación, el caso y los espacios, y lee directamente y lee de manera opuesta, entonces esta cadena es Palindrome (Palindrome).
Tenga en cuenta que debe eliminar la puntuación adicional y los espacios de la cadena, y luego convertir la cadena en minúsculas para verificar que la cadena sea palíndromo.
El valor de los parámetros de función puede ser "racecar", "carreras" y "auto de carreras".
Función Palindrome (str) {// ¡Buena suerte! str = str.replace (/[/|/~ |/`|/! |/@|/#|/$ |/%|/^|/& |/*|/(|/) |/-|/_ |/+|/|/| // |//[|/] |/{|/} |//: |/" |//, |/<|/. Marcos de puntuación, este es mi Baidu, y no estoy muy familiarizado con JS Str = Str.replace (// s+/g); falso;} palindrome ("ojo");/*palindrome ("ojo") debería devolver true.palindrome ("auto de carrera") debería devolver true.palindrome ("no un palindrome") debería devolver false.palindrome ("un hombre, un plan, un canal. Panama") debería regresar verdadero. false.palindrome ("shasmenomla") debería devolver falso.palindrome ("Mi edad es 0, 0 si ega ym.") Debería devolver true.palindrome ("1 ojo para 1 ojo") debería devolver falso.palindrome ("0_0 (:/-/ :) 0-0") Debería devolver verdadero.*///*////*/*3. CASO TITULO Una oración
Asegúrese de que la primera letra de cada palabra en la cadena esté capitalizada y el resto sea minúscula. (Por ejemplo, TitLecase ("Soy un poco de té") debería regresar "Soy una olla de té". TitleCase ("corto y robusto") debería regresar "corto y robusto".)
/*Esta pregunta es muy simple. Lo principal es comprender que Split () es dividir una cadena en una unión de matriz () es convertir la matriz en una cadena tolowercase () toupperCase () de conversión de casos. Tenga en cuenta que solo es válido para letras, y otros caracteres (por ejemplo:/,!@) son inválidos*/function titLecase (str) {str = str.split (""); // segmento la cadena en una matriz según los espacios para (var i = 0; i <str.length; i ++) {str [i] = str [i] .tolowercase (); str [i] = str [i] .substring (0, 1) .ToupperCase () + str [i] .substring (1); } return str.Join (""); // Conecte la matriz en una cadena a través de espacios} TitLecase ("Soy un poco de té");4. Confirmó el final
Comprueba si una cadena (str) termina con la cadena especificada (destino).
En caso afirmativo, regrese verdadero; Si no, devuelve falso. Por ejemplo: confirmar ("Bastian", "n") debería devolver verdadero. confirmar ("connor", "n") debería devolver falso. Confirmar ("caminar sobre el agua y desarrollar software a partir de una especificación son fáciles si ambos están congelados", "especificación") debería devolver falso.
Función Confirmación (STR, Target) {// "Nunca te rindas y la buena suerte te encontrará". //-Falcor return str.substr (str.length-target.length) == objetivo? Verdadero: falso;} confirming ("Bastian", "n"); confirmar ("tiene que darme un nuevo nombre", "na");/*confirmarme ("Bastian", "n") debería devolver true.confirmending ("connor", "n") debe devolver falso.confirming ("caminar sobre el agua y el software en desarrollo de una especificación es fácil si se frzan" false.confirmending ("tiene que darme un nuevo nombre", "nombre") debería devolver true.confirmending ("tiene que darme un nuevo nombre", "yo") debería devolver true.confirmending ("Él tiene que darme un nuevo nombre", "na") debe devolver falso.confirmending ("si quieres guardar nuestro mundo, debes preocuparte. No sabemos cuánto más tiempo podemos con el no lo más ojo", ",", ").5. Repita una cadena Repita una cadena
¡Di cosas importantes 3 veces!
Repita una cadena especificada Num Times y devuelve una cadena vacía si NUM es un número negativo. Por ejemplo:
Repita ("*", 3) debería devolver "***".
Repita ("ABC", 3) debería devolver "ABCABCABC".
Repita ("ABC", 4) debería devolver "ABCABCABCABC".
Repita ("ABC", 1) debería devolver "ABC".
Repita ("*", 8) debería devolver "*********".
Repita ("ABC", -2) debería devolver "".
Cuando no pueda completar el desafío, recuerde usar el mejor movimiento 'Read-Search-Ak'.
Aquí hay algunos recursos que te ayudarán:
• Objeto de cadena global
Función repetir (str, num) {// repite después de mí var newsstr = str; if (num> 1) {for (var i = 1; i <num; i ++) {str += newstr; } return str; } else if (num == 1) {return str; } else {return ""; }} repetir ("ABC", 3); repite ("*", 3);6. Monkey de Junky
¡Los monos comen plátanos pero los rompen en varias secciones para comerlos!
Divida una matriz ARR en varios bloques de matriz de acuerdo con el tamaño de la matriz especificado.
Por ejemplo: fragmento ([1,2,3,4], 2) = [[1,2], [3,4]];
fragmento ([1,2,3,4,5], 2) = [[1,2], [3,4], [5]];
function shunk (arr, size) {// rompa up.var arr1 = []; for (var i = 0; i <arr.length; i = i + size) {var arr2 = arr; arr1.push (arr2.slice (i, i + tamaño)); } return arr1;} chunk (["a", "b", "c", "d"], 2);7. Combustible Bouncer
¡Rey mono verdadero y falso!
Elimine todos los valores falsos en la matriz.
En JavaScript, los valores falsos son falsos, nulos, 0, "", indefinidos y nan.
Cuando no pueda completar el desafío, recuerde usar el mejor movimiento 'Read-Search-Ak'.
Aquí hay algunos recursos que te ayudarán:
• Objetos booleanos
• array.filter ()
Por ejemplo:
Bouncer ([7, "come", "", falso, 9]) debería devolver [7, "come", 9].
Bouncer (["A", "B", "C"]) debería devolver ["A", "B", "C"].
Bouncer ([FALSO, NULL, 0, nan, indefinido, ""]) debería devolver [].
Bouncer ([1, nulo, nan, 2, indefinido]) debe regresar [1, 2].
/* Esta pregunta trata sobre la comprensión del filtro. Este es mi código inicial. No está bien escrito y tiene poco valor de referencia. También debe prestar atención a la comparación de NAN. usted mismo no es igual a usted mismo (nan! = nan)*/function Bouncer (arr) {// No muestre una identificación falsa a este gorila. var arr1 = []; var j = 0; arr.filter (function (val, index) {if (val === false || val === null || val === 0 || val === "" || val === Undefined || val! == val) {arr1.push (index);}}); var len = arr1.length; para (var i = 0; i <len; i ++) {arr.splice (arr1 [i] -j, 1); j ++; } return arr;} Bouncer ([7, "come", "", falso, 9]);8. Vea y destruye
¡El mortero de Jinx!
Implementar una función del destructor, el primer parámetro es la matriz a destruir, y los parámetros restantes son los valores a destruir.
Por ejemplo:
Destroyer ([1, 2, 3, 1, 2, 3], 2, 3) debe regresar [1, 1].
El destructor ([1, 2, 3, 5, 1, 2, 3], 2, 3) debe regresar [1, 5, 1].
Destroyer ([3, 5, 1, 2, 2], 2, 3, 5) debe regresar [1].
Destroyer ([2, 3, 2, 3], 2, 3) debería regresar [].
Destroyer (["Árbol", "Hamburguesa", 53], "Árbol", 53) debería devolver ["Hamburguesa"].
Aquí hay algunos recursos que te ayudarán:
• Argumentos objeto
• array.filter ()
function Destroyer (arr) {// elimina todos los valores var temperGuments = argumentos; return arr.filter (function (entrada) {for (var i = 1; i <tempparguments.length; i ++) {if (entry == TEmParGuments [i]) {return false;}} return true;});} Destroyer ([1, 2, 3, 1, 2, 3], 2, 3);9. ¿A dónde pertenezco?
¿Dónde estoy?
Primero ordene la matriz, luego encuentre el valor especificado en la ubicación de la matriz y finalmente devuelva el índice correspondiente a la ubicación.
Por ejemplo: donde ([[1,2,3,4], 1.5) debería devolver 1. Porque 1.5 se inserta en la matriz [1, 2, 3, 4] y se convierte en [1, 1.5, 2, 3, 4], y el valor de índice correspondiente a 1.5 es 1.
Del mismo modo, donde ([[20,3,5], 19) debería regresar 2. Debido a que la matriz se clasificará primero como [3,5,20], 19 se inserta en la matriz [3,5,20] y se convierte en [3,5,19,20], y el valor de índice correspondiente a 19 es 2.
Aquí hay algunos recursos que te ayudarán:
• array.sort ()
función donde (arr, num) {// Encuentra mi lugar en esta matriz ordenada. // nota la regla de clasificar () sort () de clasificación arr.sort (function (a, b) {return a- b;}); for (var i = 0; i <arr.length; i ++) {if (arr [i]> num | arr [i] == num) {return i; }} return arr.length;} donde ([5, 3, 20, 3], 5);10. CAESARS CIPHER
Que Dios pertenezca a Dios y César pertenece a César.
A continuación, presentaremos el CaSar Password Caesar Cipher, también conocido como Shift Password, que es popular en todo el mundo.
La contraseña de cambio significa que las letras en la contraseña se cambiarán de acuerdo con el número especificado.
Un caso común es la contraseña ROT13, y las letras se cambiarán en 13 posiciones. Por 'a' ↔ 'n', 'b' ↔ 'o', y así sucesivamente.
Escriba una función ROT13 para implementar la cadena cifrada de entrada y emitir la cadena descifrada.
Todas las letras están en mayúscula, no conviertan caracteres que no sean de letras (por ejemplo: espacios, signos de puntuación). Si te encuentras con estos caracteres especiales, omita.
Por ejemplo:
ROT13 ("SERR PBQR PNZC") debe decodificarse a "Campamento de código gratuito"
ROT13 ("SERR CVMMN!") Debe decodificarse como "¡Pizza gratis!"
ROT13 ("SERR YBIR?") Debería decodificarse como "¿Amor libre"?
ROT13 ("Gur Dhvpx Oebja QBT WHZCRQ BIRE GUR YNML SBK") debe decodificarse como "el perro marrón rápido saltó sobre el zorro perezoso".
Aquí hay algunos recursos que te ayudarán:
• String.CharCodeat ()
• String.FromCharCode ()
función rot13 (str) {// lbh qvq vg! var arr = str.toupperCase (). Split (""); var str1 = []; for (var i = 0; i <arr.length; i ++) {var arr1 = arr [i] .split (""); for (var j = 0; j <arr1.length; j ++) {var num = arr1 [j] .charCodeat (); if (num> = 65 && num <= 90) {arr1 [j] = num + 13> 90? String.FromCharCode (64 + (num + 13 - 90)): string.FromCharCode (num + 13); // 64 + (num + 13 - 90) para comprender por qué es 64,}} str1.push (arr1.join ("")); } return str1.Join ("");} // Cambie las entradas a continuación a TestRot13 ("SERR PBQR PNZC");El artículo anterior discute brevemente algunos problemas de algoritmos básicos en el carácter y la matriz en JS es todo el contenido que comparto con ustedes. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.