J'ai essayé les questions de la FCC récemment, tout comme la mise à niveau pour combattre les monstres, j'ai passé un niveau à la fois, ce qui est assez attrayant pour moi. J'ai pris le temps de faire la partie de script de l'algorithme de base aujourd'hui. Selon certains conseils, c'est relativement simple. Je pense que les méthodes de gestion de certaines questions méritent d'être apprises. Par exemple, vous devez parfois traiter un personnage dans un projet. Si vous ne pouvez pas penser à certaines méthodes connexes, c'est assez gênant. Alors, enregistrez-le ici. Si vous rencontrez des caractères ou un traitement de tableau à l'avenir, vous pouvez rechercher cet article, en espérant obtenir des invites au lieu de traduire le document.
Si vous voyez ce blogueur, si vous avez un code meilleur et plus simple ou de bonnes idées, veuillez laisser un message à communiquer (je pense toujours que ce n'est qu'en apprenant que l'excellent code des autres pouvez-vous faire des progrès plus rapides et une réflexion plus flexible). Pour les débutants, essayez de le faire vous-même sans regarder le code. (Les questions suivantes n'ont pas besoin de considérer les types de paramètres. Strictement parlant, un jugement doit être porté sur les types de paramètres, par exemple: typeof (arg) === numéro)
1. Réverser une chaîne
Flip corde
Convertissez d'abord la chaîne en un tableau, puis utilisez la méthode inverse du tableau pour retourner l'ordre du tableau, et enfin convertir le tableau en une chaîne.
Votre résultat doit être une chaîne
fonction reversestring (str) {str = str.split (''). reverse (). join (''); return str;} reversestring ("bonjour");2. Vérifiez les palindromes
Si la chaîne donnée est palindrome, renvoyez vrai, sinon, false.
Si une chaîne ignore la ponctuation, le boîtier et les espaces, et lit directement et se lit opposée, alors cette chaîne est palindrome (palindrome).
Notez que vous devez supprimer la ponctuation supplémentaire et les espaces de la chaîne, puis convertir la chaîne en minuscules pour vérifier que la chaîne est palindrome.
La valeur des paramètres de fonction peut être "la voiture de course", "Racecar" et "Race Car".
fonction palindrome (str) {// bonne chance! str = str.replace (/ [/ | / ~ | / `| /! | / @ | / # | / $ | /% | / ^ | / & | / * | / (| /) | / - | / _ | / + | / = | / | // | / | / [| /] | / {| /} | /; /: | /" | / /, | / <| /. Marques, c'est mon baidu, et je ne connais pas très FAUX;} Palindrome ("Eye"); / * Palindrome ("Eye") devrait retourner True.palindrome ("Race Car") devrait retourner true.palindrome ("pas un palindrome") devrait retourner false.palindrome ("un homme, un plan, un canal. Panama") devrait retourner true.palindrome "" ne devrait jamais être ") devrait retourner true. false.palindrome ("presqueomla") devrait renvoyer false.palindrome ("mon âge est 0, 0 si ega ym.") devrait retourner true.palindrome ("1 œil pour 1 œil.") devrait retourner false.palindrome ("0_0 (: / - / :) 0-0") devrait retourner true. / /3. Cas de cas une phrase
Assurez-vous que la première lettre de chaque mot de la chaîne est capitalisée et que le reste est minuscule. (par exemple: TitleCase ("Je suis un peu de thé") devrait retourner "Je suis un peu de thé". Titlecase ("Short and Stout") devrait retourner "Short and Stout".)
/ * Cette question est très simple. L'essentiel est de comprendre que Split () est de diviser une chaîne en un tableau Join () est de transformer le tableau en une chaîne TolowerCase () ToupperCase () Case. Notez qu'il n'est valable que pour les lettres, et d'autres caractères (par exemple: / ,! @) sont invalides * / fonction titlecase (str) {str = str.split (""); // segmenter la chaîne dans un tableau selon les espaces pour (var i = 0; i <str.length; i ++) {str [i] = str [i] .tolowercase (); str [i] = str [i] .substring (0, 1) .toupperase () + str [i] .substring (1); } return str.join (""); // Connectez le tableau dans une chaîne via des espaces} titlecase ("Je suis un peu de thé");4. Confirmez la fin
Vérifie si une chaîne (STR) se termine par la chaîne spécifiée (cible).
Si oui, retournez vrai; Sinon, retournez false. Par exemple: confirmanding ("Bastian", "n") devrait retourner vrai. La confirmation ("Connor", "N") devrait retourner false. La confirmation ("Marcher sur l'eau et le développement de logiciels à partir d'une spécification sont faciles si les deux sont gelés", "spécification") devraient retourner faux.
Fonction Confirmanding (str, cible) {// "Never Abanding and bonne chance vous trouvera." // - Falcor return str.substr (str.length-target.length) == cible? vrai: false;} confirmanding ("bastian", "n"); confirmanding ("il doit me donner un nouveau nom", "na"); / * confirmanding ("bastian", "n") devrait retourner true.confirmanding ("Connor", "n") devrait retourner false.confirmanding ("Walking on Water and Developing Software à partir d'une spécification est facile si les deux sont des fragintes" false.confirmanding ("Il doit me donner un nouveau nom", "nom") devrait retourner true.confirmanding ("il doit me donner un nouveau nom", "moi") devrait retourner true.confirmanding ("Il doit me donner un nouveau nom", "Na") devrait être plus long.5. Répondre une chaîne Répétez une chaîne
Dites des choses importantes 3 fois!
Répétez une chaîne spécifiée Num Times et renvoyez une chaîne vide si Num est un nombre négatif. Par exemple:
répéter ("*", 3) devrait retourner "***".
répéter ("ABC", 3) doit retourner "ABCABCABC".
Repeat ("ABC", 4) devrait retourner "ABCABCABABC".
Répéter ("ABC", 1) devrait retourner "ABC".
répéter ("*", 8) devrait retourner "*********".
répéter ("ABC", -2) devrait retourner "".
Lorsque vous ne pouvez pas relever le défi, n'oubliez pas d'utiliser le mouvement ultime «Read-Search-Ask».
Voici quelques ressources qui vous aideront:
• Objet de chaîne globale
function répéter (str, num) {// répéter après moi var newsstr = str; if (num> 1) {for (var i = 1; i <num; i ++) {str + = newttr; } return str; } else if (num == 1) {return str; } else {return ""; }} répéter ("ABC", 3); répéter ("*", 3);6. singe
Les singes mangent des bananes mais les divisent en plusieurs sections pour les manger!
Divisez un Array ARR en plusieurs blocs de tableau en fonction de la taille du tableau spécifiée.
Par exemple: Chunk ([1,2,3,4], 2) = [[1,2], [3,4]];
Chunk ([1,2,3,4,5], 2) = [[1,2], [3,4], [5]];
Fonction Chunk (arr, taille) {// Break It Up.var arr1 = []; pour (var i = 0; i <arr.length; i = i + taille) {var arr2 = arr; arr1.push (arr2.slice (i, i + size)); } return arr1;} chunk (["a", "b", "c", "d"], 2);7. Boungers
Vrai et faux King de singe!
Supprimez toutes les fausses valeurs dans le tableau.
Dans JavaScript, les fausses valeurs sont fausses, null, 0, "", indéfinies et nan.
Lorsque vous ne pouvez pas relever le défi, n'oubliez pas d'utiliser le mouvement ultime «Read-Search-Ask».
Voici quelques ressources qui vous aideront:
• objets booléens
• array.filter ()
Par exemple:
Bouncer ([7, "ate", "", false, 9]) devrait retourner [7, "ate", 9].
Bouncer (["a", "b", "c"]) devrait renvoyer ["a", "b", "c"].
Bouncer ([false, null, 0, nan, non défini, ""]) devrait retourner [].
Bouncer ([1, null, nan, 2, indéfini]) devrait revenir [1, 2].
/ * Cette question consiste à comprendre le filtre. Ceci est mon code initial. Il n'est pas bien écrit et a peu de valeur de référence. Vous devez également faire attention à la comparaison NAN. vous-même n'est pas égal à vous-même (nan! = nan) * / fonction Bouncer (arr) {// N'affichez pas un faux identifiant à ce videur. var arr1 = []; var j = 0; arr.filter (fonction (val, index) {if (val === false || val === null || val === 0 || val === "" || val === indéfini || val! == val) {arr1.push (index);}}); var len = arr1.length; for (var i = 0; i <len; i ++) {arr.splice (arr1 [i] -j, 1); j ++; } return arr;} bouncer ([7, "ate", "", false, 9]);8. voir et détruire
Le mortier de Jinx!
Implémentez une fonction de destroyer, le premier paramètre est le tableau à détruire et les paramètres restants sont les valeurs à détruire.
Par exemple:
Destroyer ([1, 2, 3, 1, 2, 3], 2, 3) devrait revenir [1, 1].
Destroyer ([1, 2, 3, 5, 1, 2, 3], 2, 3) devrait revenir [1, 5, 1].
Destroyer ([3, 5, 1, 2, 2], 2, 3, 5) devrait revenir [1].
Destroyer ([2, 3, 2, 3], 2, 3) devrait retourner [].
Destroyer (["Tree", "Hamburger", 53], "Tree", 53) devrait retourner ["hamburger"].
Voici quelques ressources qui vous aideront:
• Objet des arguments
• array.filter ()
Fonction Destroyer (arr) {// supprimer toutes les valeurs var temparguments = arguments; return arr.filter (fonction (entrée) {for (var i = 1; i <temParguments.length; i ++) {if (entry == temParguments [i]) {return false;}} return true;});} destroyer ([1, 2, 3, 1, 2, 3], 2, 3);9. Où est-ce que je suis appartenant
Où suis-je?
Triez d'abord le tableau, puis trouvez la valeur spécifiée à l'emplacement du tableau et renvoyez enfin l'index correspondant à l'emplacement.
Par exemple: où ([1,2,3,4], 1,5) devrait retourner 1. Parce que 1,5 est inséré dans le tableau [1, 2, 3, 4] et devient [1, 1,5, 2, 3, 4], et la valeur d'index correspondant à 1,5 est 1.
De même, où ([20,3,5], 19) devrait retourner 2. Parce que le tableau sera trié en premier comme [3,5,20], 19 est inséré dans le tableau [3,5,20] et devient [3,5,19,20], et la valeur indice correspondant à 19 est 2.
Voici quelques ressources qui vous aideront:
• array.sort ()
fonction où (arr, num) {// trouver ma place dans ce tableau trié. // Notez la règle de tri () tri () arr.sort (fonction (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;} où ([5, 3, 20, 3], 5);10.Caesars Cipher
Que Dieu appartienne à Dieu et à César appartiennent à César.
Ensuite, nous présenterons le Caesar Password Caesar Cipher, également connu sous le nom de Shift Motway, qui est populaire partout dans le monde.
Le mot de passe Shift signifie que les lettres du mot de passe seront décalées en fonction du numéro spécifié.
Un cas commun est le mot de passe ROT13 et les lettres seront décalées de 13 positions. Par 'a' ↔ 'n', 'b' ↔ 'o', et ainsi de suite.
Écrivez une fonction ROT13 pour implémenter la chaîne cryptée d'entrée et sortir la chaîne déchiffrée.
Toutes les lettres sont capitalisées, ne convertissez aucun caractères non-lettres (par exemple: espaces, marques de ponctuation). Si vous rencontrez ces caractères spéciaux, sautez-les.
Par exemple:
ROT13 ("SERR PBQR PNZC") doit être décodé en "Camp gratuit"
ROT13 ("SERR CVMMN!") devrait être décodé comme "Pizza gratuite!"
Rot13 ("Serr Ybir?") devrait être décodé comme "amour libre?"
ROT13 ("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.") devrait être décodé comme "Le chien brun rapide a sauté par-dessus le renard paresseux."
Voici quelques ressources qui vous aideront:
• String.Charcodeat ()
• String.fromCharcode ()
fonction 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 (""); pour (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) pour comprendre pourquoi il est 64,}} str1.push (arr1.join ("")); } return str1.join ("");} // Modifiez les entrées ci-dessous en testrot13 ("serr pbqr pnzc");L'article ci-dessus discute brièvement de certains problèmes d'algorithmes de base dans le caractère et le tableau dans JS est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.