회문 질문(JavaScript)
회문을 확인하는 것은 인기 있는 기술 면접 질문인 것 같습니다. 이 문제를 해결하는 방법은 여러 가지가 있으며 최선의 조치가 무엇인지에 대한 의견이 상당히 강한 것 같습니다. 나는 가장 좋거나 가장 효율적인 것으로 간주되는 것이 아니라 이 질문에 답할 수 있는 몇 가지 방법을 설명할 것입니다.
나는 최근 기술 인터뷰에서 이런 질문을 받았다. 저는 조금 더 깊이 들어가기로 결정했습니다. 제 생각은 이렇게 하면 문제를 단계로 나누는 과정을 보여주고 그 단계가 원하는 결과를 얻을 수 있는 방법을 설명할 수 있다는 것입니다. 제쳐두고, 내 솔루션은 올바른 출력을 가졌으므로 올바른 작업을 수행했습니다. 그러나 마지막에 내가 선택한 솔루션에 대해 논의할 때 앞으로 더 적은 코드(예: 내장 메서드 사용)로 수행하도록 권장되었습니다.
이 특별한 설정에서는 예외적인 경우가 무시되었음을 명심하십시오. 지침은 충분히 간단하여 주어진 입력이 회문인지 확인하는 함수를 작성했습니다.
원래 이 문제를 해결하기로 결정한 방법은 다음과 같습니다.
function palindrome(str){
let reverse = '';
// the reverse is an empty string for now
// loop through the string starting from the end to get each character
for (let i = str.length - 1; i >= 0; i--){
// add each character to the reverse
reverse += str.charAt(i);
}
// if true (str is stricly equal to reverse)
return str === reverse;
}
console.log(palindrome('racecar')) // true
console.log(palindrome('palindrome')) // false
내장 메소드로 이것을 해결했다면 다음과 같을 것입니다.
function palindrome(str){
return str === str.split('').reverse('').join('')
}
console.log(palindrome('racecar')) // true
console.log(palindrome('palindrome')) // false
짧고 달콤하며 요점에 맞습니다.
이 문제를 해결하는 방법에 대한 또 다른 분석은 다음과 같습니다.
function palindrome(str){
let reverse = '';
for (let i = 0; i < str.length/2; i++){
if (str[i] !== str[(str.length - 1) - i]){
return false;
}
}
return true;
}
console.log(palindrome('racecar')) // true
console.log(palindrome('palindrome')) // false
그리고 마지막으로, 나는 이 솔루션을 꽤 최근에 보았습니다. 두 개의 개별 지점, 즉 입력의 시작과 입력의 끝에서 시작하여 두 지점이 일치하는지 여부를 확인합니다(소스를 공유하지 않은 점을 용서하십시오. 기억할 수 없습니다. 이 솔루션을 본 곳):
function palindrome(str) {
let beginning = 0;
let end = str.length - 1;
while (beginning <= end) {
// if the beginning character is not equivalent to the end character, it's not a palindrome
if (str[beginning] !== str[end]) return false;
// increment the beginning, decrement the end until you meet in the middle
beginning++;
end--;
}
return true;
}
console.log(palindrome('racecar')) // true
console.log(palindrome('palindrome')) // false
JavaScript에서 무언가가 회문인지 확인하는 몇 가지 방법이 있습니다. 이 문제를 해결하는 다른 방법이 있다면 자유롭게 공유해주세요!
Reference
이 문제에 관하여(회문 질문(JavaScript)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/liz_p/the-palindrome-question-javascript-2kea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)