코딩 면접 도전
24276 단어 challengecodingchallengejavascript
코드 도전 공략
너는 가능한 한 인터넷에서 알고리즘과 데이터 구조의 코드 도전을 많이 연습해야 한다.이것들은 모두 무료이며 면접 기교를 연습하기 위해 비용을 지불한다Pramp.
interviewing.io ,
GeeksforGeeks , CodeSignal , Skilled , Interview Cake , HackerRank , freeCodeCamp .
해결 방안을 쓰면서 면접에서 당신의 사고 과정을 이야기하세요.만약 네가 잘못 대답한다면, 이것은 면접에 도움이 될 것이다.이것도 너의 의사소통 기교를 보여 주었다.
잘못된 문제를 해결하는 시간을 절약할 뿐만 아니라 면접관에게 질문을 할 수도 있기 때문에 이 점은 매우 중요하다.
이것은 자동 완성, 형식, 오류 경고 등을 제공하지 않기 때문에 화이트보드 도전을 익히는 데 도움이 됩니다. 화이트보드에 왼쪽에서 오른쪽으로 글을 쓰고 더 자세한 정보를 작성할 수 있는 공간을 남겨 두십시오.
일반적인 Javascript 인코딩 문제
회문
Apalindrome는 단어, 문장 또는 다른 유형의 문자 서열로 앞뒤가 같다.예를 들어, "racecar"및 "Anna"는 회문입니다."Table"과 "John"은 회문이 아닙니다. 왼쪽에서 오른쪽으로 읽는 방법과 오른쪽에서 왼쪽으로 읽는 방법이 다르기 때문입니다.
문자열을 입력하고
true
또는 false
로 돌아갑니다.palindrome('racecar') === true
palindrome('table') === false
도전에 대한 추리
이 도전은 반전 문자열의 생각을 둘러싸고 전개된다.만약 역방향 문자열이 원시 입력 문자열과 같으면, 회문이 하나 있고, 그렇지 않으면 함수는true나false로 되돌아와야 한다.
솔루션 1
const palindrome = str => {
// turn the string to lowercase
str = str.toLowerCase()
// reverse input string and return the result of the
// comparison
return str === str.split('').reverse().join('')
}
솔루션 2
function palindrom(inputString) {
let str = ""
//copy from the end to front of input string
for(let i = inputString.length; i >=0; i--)
str += inputString.charAt(i)
//return true if both strings are matched
return str === inputString
}
솔루션 3
function palindrome(str) {
str = str.replace(/[\W_]/g, '').toLowerCase();
for (var i = 0, len = str.length -1; i < len/2; i ++){
if (str[i] !== str[len-i]){
return false;
}
}
return true;
}
palindrome("eye");
사이다 2잔
도전을 이해하다
피자버즈 도전은 이렇다.다음 작업을 수행하는 함수를 작성합니다.
fizzBuzz(5)
// 1
// 2
// fizz
// 4
// buzz
도전에 대한 추리
Fizz Buzz에 대한 중요한 질문 중 하나는 자바스크립트에서 숫자의 배수를 어떻게 찾느냐입니다.
modulo or remainder operator
%
를 사용하여 이 작업을 수행할 수 있습니다.이 연산자는 두 개의 숫자를 나눈 후의 여수를 되돌려줍니다.0의 나머지는 첫 번째 숫자가 두 번째 숫자의 배수임을 나타낸다12 % 3 //0
12 % 5 //2
솔루션 1
const fizzBuzz = num => {
for(let i = 1; i <= num; i++) {
// check if the number is a multiple of 3 and 5
if(i % 3 === 0 && i % 5 === 0) {
console.log('fizzbuzz')
} // check if the number is a multiple of 3
else if(i % 3 === 0) {
console.log('fizz')
} // check if the number is a multiple of 5
else if(i % 5 === 0) {
console.log('buzz')
} else {
console.log(i)
}
}
}
솔루션 2
const fizzBuzz = num => {
for (let i = 0; i < num; i++){
let output = ""
if (n % 3 == 0) output +="Fizz"
if (n % 5 == 0) output +="Buzz"
console.log(output)
}
}
3자 수수께끼
만약 두 단어 모두 같은 수량의 같은 자모를 사용하지만 배열 방식이 다르면 한 단어는 다른 단어의 철자법이다.
도전을 이해하다
당신은 다음과 같은 용어로 이 도전을 설명할 수 있습니다. 함수를 작성하여 제공된 두 문자열이 서로의 글자 수수께끼인지 확인하십시오.자모의 대소문자는 중요하지 않다.또한 공백이나 문장부호가 아닌 문자만 고려합니다
anagram('finder', 'Friend') // true
anagram('hi', 'hello') // false
우리는 자바스크립트 대상 문자를 사용하여 두 문자열의 자모수를 계산할 수 있다.키는 알파벳 문자이고 값은 주어진 문자열에 알파벳이 나타나는 횟수입니다.문자열을 소문자 또는 대문자로 변환합니다.regular expression
를 사용하여 모든 비 문자 삭제솔루션
// helper function that builds the
// object to store the data
const buildCharObject = str => {
const charObj = {}
for(let char of str.replace(/[^\w]/g).toLowerCase()) {
// if the object has already a key value pair
// equal to the value being looped over,
// increase the value by 1, otherwise add
// the letter being looped over as key and 1 as its value
charObj[char] = charObj[char] + 1 || 1
}
return charObj
}
// main function
const anagram = (strA, strB) => {
// build the object that holds strA data
const aCharObject = buildCharObject(strA)
// build the object that holds strB data
const bCharObject = buildCharObject(strB)
// compare number of keys in the two objects
// (anagrams must have the same number of letters)
if(Object.keys(aCharObject).length !== Object.keys(bCharObject).length) {
return false
}
// if both objects have the same number of keys
// we can be sure that at least both strings
// have the same number of characters
// Now we can compare the two objects to see if both
// have the same letters in the same amount
for(let char in aCharObject) {
if(aCharObject[char] !== bCharObject[char]) {
return false
}
}
// if both the above checks succeed,
// you have an anagram: return true
return true
}
4. 모음 찾기
도전을 이해하다
문자열을 매개 변수로 하고 이 문자열에 포함된 모음수의 함수를 되돌려줍니다.
모음은'a','e','i','o','u'이다.
findVowels('there') // 2
findVowels('why') // 0
솔루션
const findVowels = str => {
let count = 0
const vowels = ['a', 'e', 'i', 'o', 'u']
for(let char of str.toLowerCase()) {
if(vowels.includes(char)) {
count++
}
}
return count
}
5 피보나치
피보나치의 도전에 대해 토론하지 않으면 이 글은 완전할 수 없다. 이것은 구직 면접이나 코딩 실천에서 틀림없이 만날 수 있는 대표적인 문제이다.
피보나치 수열은 한 수의 정렬인데, 그 중 한 수는 앞의 두 수의 합이다.예를 들어 피보나치 서열의 열 번째 숫자는 0, 1, 1, 2, 3, 5, 8, 13, 21, 34이다.
도전을 이해하다
피보나치 도전은 다음과 같다. 함수를 작성하여 피보나치 서열의 n번째 항목을 되돌려주고 그 중에서 n은 매개 변수로 함수에 전달되는 숫자이다.
fibonacci(3) // --> 2
솔루션 1
const fibonacci = num => {
// store the Fibonacci sequence you're going
// to generate inside an array and
// initialize the array with the first two
// numbers of the sequence
const result = [0, 1]
for(let i = 2; i <= num; i++) {
// push the sum of the two numbers
// preceding the position of i in the result array
// at the end of the result array
const prevNum1 = result[i - 1]
const prevNum2 = result[i - 2]
result.push(prevNum1 + prevNum2)
}
// return the last value in the result array
return result[num]
}
솔루션 2
const fibonacci = num => {
// if num is either 0 or 1 return num
if(num < 2) {
return num
}
// recursion here
return fibonacci(num - 1) + fibonacci(num - 2)
}
도구책https://www.sitepoint.com/5-common-coding-interview-challenges/
Reference
이 문제에 관하여(코딩 면접 도전), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/huyddo/coding-interview-challenges-2n7n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)