나는 몬스터와 싸우기 위해 업그레이드하는 것처럼 최근에 FCC 질문을 시도해 왔으며, 한 번에 한 레벨을 통과했습니다. 이는 나에게 매우 매력적입니다. 나는 오늘 기본 알고리즘 스크리핑 부분을 수행하는 데 시간이 걸렸습니다. 일부 팁에 따르면 비교적 간단합니다. 몇 가지 질문을 처리하는 방법은 배울 가치가 있다고 생각합니다. 예를 들어, 때로는 프로젝트에서 캐릭터를 처리해야합니다. 관련 방법을 생각할 수 없다면 매우 번거 롭습니다. 따라서 여기에 기록하십시오. 앞으로 일부 문자 나 배열 처리를 만나면 문서를 번역하는 대신 일부 프롬프트를 얻기 위해이 기사를 검색 할 수 있습니다.
이 블로거가 더 좋고 단순한 코드 나 좋은 아이디어를 가지고 있다면 의사 소통을위한 메시지를 남겨주십시오 (항상 다른 사람들의 훌륭한 코드를 배우는 것만으로 만 더 빠른 발전과 유연한 생각을 할 수 있다고 생각합니다). 초보자에게는 코드를 보지 않고 직접 수행하십시오. (다음 질문은 매개 변수 유형을 고려할 필요가 없습니다. 엄격히 말하면, 매개 변수 유형에 대한 판단이 이루어져야합니다.
1. 문자열을 반복하십시오
플립 문자열
먼저 문자열을 배열로 변환 한 다음 배열의 역 메소드를 사용하여 배열 순서를 뒤집고 배열을 문자열로 변환합니다.
결과는 문자열이어야합니다
함수 리버 스트링 (str) {str = str.split ( ''). reverse (). join ( ''); return str;} Reversestring ( "Hello");2. Palindromes를 점검하십시오
주어진 문자열이 Palindrome 인 경우 true, 그렇지 않으면 false를 반환하십시오.
문자열이 구두점, 케이스 및 공간을 무시하고 직접 읽고 반대로 읽으면이 문자열은 Palindrome (Palindrome)입니다.
문자열의 여분의 구두점과 공간을 제거한 다음 문자열을 소문자로 변환하여 문자열이 Palindrome인지 확인해야합니다.
함수 매개 변수의 값은 "racecar", "racecar"및 "race car"일 수 있습니다.
기능 palindrome (str) {// 행운을 빕니다! str.replace (/|/~ |/`|/! |/@|/#|/#|/$ |/%|/|/|/|/*|/(|/) |/) |/-|/_ |/|/| // |/|/|/|/|/] |/{|/} |/;/;/'|/'|/|/<); Marks, 나는 JS 규칙 str.replace에 익숙하지 않습니다 false;} palindrome ( "눈");/*palindrome ( "눈")은 true.palindrome ( "경주 자동차") palindrome ( "palindrome이 아님")을 반환해야한다. Palindrome ( "사람, 계획, canal. panama")를 반환해야한다. Palindrome ( "홀수 또는 심지어 돌아와야한다") false.palindrome ( "거의 소모자")는 false를 반환해야합니다. 팔린 드롬 ( "내 나이는 0, 0 si ega ym.")은 true.palindrome ( "1 눈의 1 눈")가 거짓으로 되돌아 져야합니다. Palindrome ( "0_0 (:/-/ :) 0-0")은 true를 반환해야합니다.*/.3. 제목 사례 문장
문자열의 각 단어의 첫 글자가 대문자이고 나머지는 소문자인지 확인하십시오. (예 : Titlecase ( "I 'm a Little Tea Pot")는 "I'm a Little Tea Pot"을 반환해야합니다. Titlecase ( "Short and Stout")는 "Short and Stout"을 반환해야합니다.)
/*이 질문은 매우 간단합니다. 가장 중요한 것은 split ()이 문자열을 배열로 분할하는 것임을 이해하는 것입니다. 문자에 대해서만 유효하며 다른 문자 (예 :/,!@)는 유효하지 않습니다*/function titlecase (str) {str = str.split ( ""); // 문자열을 (var i = 0; i <str.length; i ++) {str [i] = str [i] .tolower cases (); str [i] = str [i] .substring (0, 1) .touppercase () + str [i] .substring (1); } return str.join ( ""); // 공백을 통해 배열을 문자열에 연결} titlecase ( "나는 작은 차 냄비");4. 결말을 확인하십시오
문자열 (str)이 지정된 문자열 (target)으로 끝 있는지 확인합니다.
그렇다면, 진실을 반환하십시오. 그렇지 않은 경우 거짓을 반환하십시오. 예를 들어 : 확인 ( "Bastian", "N")은 True를 반환해야합니다. 확인 ( "Connor", "N")은 False를 반환해야합니다. 확인 ( "물 위로 걷기 및 사양에서 소프트웨어 개발이 모두 얼어 붙은 경우", "사양")는 False를 반환해야합니다.
기능 확인 (str, target) {// "절대 포기하지 않고 행운을 찾을 수 있습니다." //-Falcor return str.substr (str.length-target.length) == 대상? true : false;} 확인 ( "바스티안", "n"); 확인 ( "그는 나에게 새로운 이름을 줘야한다", "na");/*확인 ( "바스티안", "n")은 true.confirmending ( "connor", "n")이 거짓을 반환해야한다. false.confirmending ( "그는 나에게 새로운 이름을 줘야한다", "이름")은 true.confirmending ( "그가 나에게 새로운 이름을 주어야한다", "나")을 반환해야한다. "그는 나에게 새로운 이름을 주어야한다", "na")가 거짓을 반환해야한다면 (우리가 얼마나 오래 걱정 해야하는지 알지 못한다면, 우리는 아무것도 없어야한다.5. 문자열을 반복하십시오
중요한 말을 3 번 말하십시오!
지정된 문자열 NUM 시간을 반복하고 NUM이 음수 인 경우 빈 문자열을 반환하십시오. 예를 들어:
반복 ( "*", 3)은 "***"를 반환해야합니다.
반복 ( "ABC", 3)은 "ABCABCABC"를 반환해야합니다.
반복 ( "ABC", 4)은 "ABCABCABCABC"를 반환해야합니다.
반복 ( "ABC", 1)은 "ABC"를 반환해야합니다.
반복 ( "*", 8)은 "*********"를 반환해야합니다.
반복 ( "ABC", -2)은 "" "" "" "
도전을 완료 할 수 없으면 궁극적 인 움직임 '읽기 검색-문자'를 사용해야합니다.
다음은 도움이되는 몇 가지 리소스입니다.
• 글로벌 문자열 객체
함수 반복 (str, num) {// 나중에 반복 var 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 ""; }} 반복 ( "abc", 3); 반복 ( "*", 3);6. 크 펑키 원숭이
원숭이는 바나나를 먹지만 여러 섹션으로 나누어 먹습니다!
지정된 배열 크기에 따라 배열 ARR을 여러 배열 블록으로 나눕니다.
예를 들어 : 청크 ([1,2,3,4], 2) = [[1,2], [3,4]];
청크 ([1,2,3,4,5], 2) = [[1,2], [3,4], [5];
함수 청크 (arr, size) {// break.var arr1 = []; for (var i = 0; i <arr.length; i = i + size) {var arr2 = arr; arr1.push (arr2.slice (i, i + size)); } return arr1;} chunk ([ "a", "b", "c", "d"], 2);7. 금지 경비원
진실하고 가짜 원숭이 킹!
배열에서 모든 잘못된 값을 삭제하십시오.
JavaScript에서, false 값은 false, null, 0, "", undefined 및 nan입니다.
도전을 완료 할 수 없으면 궁극적 인 움직임 '읽기 검색-문자'를 사용해야합니다.
다음은 도움이되는 몇 가지 리소스입니다.
• 부울 물체
• Array.filter ()
예를 들어:
경비원 ([7, "ate", "", false, 9])는 [7, "Ate", 9]를 반환해야합니다.
경비원 ([ "A", "B", "C")는 [ "A", "B", "C"를 반환해야합니다.
경비원 ([false, null, 0, nan, undefined, "")는 []를 반환해야합니다.
경비원 ([1, NULL, NAN, 2, UNDEFINED])는 [1, 2]를 반환해야합니다.
/*이 질문은 필터 이해에 관한 것입니다. 이것은 나의 초기 코드입니다. 잘 쓰여지지 않았으며 참조 가치가 거의 없습니다. 또한 NAN 비교에주의를 기울여야합니다. 자신은 자신과 같지 않습니다. var arr1 = []; var j = 0; arr.filter (function (val, index) {if (val === false || val === null || val === 0 || val === ""|| val === 정의되지 않은 || 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;} 바운서 ([7, "ate", "", false, 9];8. 삭감하고 파괴하십시오
징크스의 박격포!
구축함 기능을 구현하면 첫 번째 매개 변수는 파괴 될 배열이며 나머지 매개 변수는 파괴 될 값입니다.
예를 들어:
구축함 ([1, 2, 3, 1, 2, 3], 2, 3)는 [1, 1]을 반환해야한다.
구축함 ([1, 2, 3, 5, 1, 2, 3], 2, 3)는 [1, 5, 1]을 반환해야한다.
구축함 ([3, 5, 1, 2, 2], 2, 3, 5)는 [1]을 반환해야한다.
구축함 ([2, 3, 2, 3], 2, 3)는 []를 반환해야합니다.
구축함 ([ "나무", "햄버거", 53], "나무", 53)는 [ "햄버거"]를 반환해야합니다.
다음은 도움이되는 몇 가지 리소스입니다.
• 인수 대상
• Array.filter ()
함수 구축함 (ARR) {// 모든 값을 제거 var temparguments = arguments; return arr.filter (function (entry) {for (var i = 1; i <temparguments.length; i ++) {if (enther == temparguments [i]) {return false;}} return true;});} Destroyer ([1, 2, 3, 1, 2, 3], 2, 3);9. 나는 어디에 속해 있습니까?
나는 어디에 있습니까?
먼저 배열을 정렬 한 다음 배열 위치에서 지정된 값을 찾은 다음 마지막으로 위치에 해당하는 인덱스를 반환하십시오.
예를 들어 : 여기서 ([1,2,3,4], 1.5)는 1.5가 배열 [1, 2, 3, 4]에 삽입되고 [1, 1.5, 2, 3, 4]가되고 1.5에 해당하는 인덱스 값은 1이되기 때문에 1을 반환해야합니다.
마찬가지로, ([20,3,5], 19)는 2를 반환해야합니다. 배열은 먼저 [3,5,20]로 정렬되기 때문에 19에 해당하는 배열 [3,5,20]에 삽입되고 19에 해당하는 인덱스 값은 2입니다.
다음은 도움이되는 몇 가지 리소스입니다.
• Array.sort ()
(ARR, NUM) {//이 정렬 된 배열에서 내 위치를 찾습니다. // sort () sort () sort 규칙 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;} where ([5, 3, 20, 3], 5);10. Caesars 암호
하나님 께서 하나님 께 속해 있고 시저는 시저에 속해 있습니다.
다음으로, 우리는 전 세계적으로 인기있는 시프트 비밀번호라고도 알려진 시저 비밀번호 Caesar Cipher를 소개 할 것입니다.
시프트 비밀번호는 비밀번호의 문자가 지정된 숫자에 따라 이동 함을 의미합니다.
일반적인 경우는 Rot13 암호이며 문자는 13 개의 위치로 이동합니다. 'a'↔ 'n', 'b'↔ 'o'등으로.
ROT13 함수를 작성하여 입력 암호화 문자열을 구현하고 해독 된 문자열을 출력하십시오.
모든 문자는 대문자로 변환되지 않으며, 비자 문자 (예 : 공백, 구두점 마크)를 변환하지 마십시오. 이 특수 캐릭터를 만나면 건너 뛰십시오.
예를 들어:
ROT13 ( "SERR PBQR PNZC")은 "무료 코드 캠프"로 디코딩되어야합니다.
Rot13 ( "Serr Cvmmn!")은 "Free Pizza!"로 디코딩되어야합니다.
Rot13 ( "Serr ybir?")은 "자유로운 사랑"으로 해독되어야합니다.
ROT13 ( "GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.")은 "빠른 갈색 개가 게으른 여우 위로 뛰어 올랐다"고 해제되어야합니다.
다음은 도움이되는 몇 가지 리소스입니다.
• string.charcodeat ()
• string.fromcharcode ()
함수 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)가 왜 64,}} str1.push (arr1.join ( "")); } return str1.join ( "");} // 아래 입력을 testrot13 ( "Serr pbqr pnzc")으로 변경합니다.위의 기사는 문자 및 JS의 배열의 몇 가지 기본 알고리즘 문제에 대해 간략하게 설명합니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.