2017-11-03 1 views
1

여러 조건을 확인하기 위해 문자열을 허용하는 부름돌과 부울을 작성해야합니다. 문장에 미러링 된 문자가 있지만 공백이 다른 경우 false가 발생하면 공백이없는 동일한 문자가 false가됩니다. 내 문제는 이 공백을 무시할 필요가있는 다음 테스트이며, 문자가 실제로 회문 알파벳이면 을 반환 할 것입니다. 내 테스트가 false를 반환합니다. 이것은 내가 지금까지 가지고 무엇다중 검사를 사용하는 Palindrome

내가 제 2의 매개 변수를 전달한다고 생각 Note..I

어떤 도움

function palindrome(str) { 
    let reChar = str.toLowerCase().replace(/\w\s/g, ''); 
    let checkPalindrome = reChar.split('').reverse().join(''); 
    if (str === '') { 
    return false; 
    } 
    return (reChar === checkPalindrome); 

} 

감사 (그들은뿐만 아니라 전달되는 다른 조건이 있습니다)하지만, 나는 어떻게 생각하는지 모르겠다.

+1

문제는 무엇입니까? – evolutionxbox

+0

샘플 입력과 예상 출력을 공유하십시오. –

+0

이전 문장과 같은 문장을 검사 할 때 공백을 무시할 것입니다 ... 그리고 만약 그 문자가 * 사실상 palindromic이면 true를 반환 할 필요가 있습니다. 내 결과가 거짓 .. –

답변

1

편집 :이 함수는 공백을 무시하거나 무시하지 않도록 지원하는 것이 좋습니다. 이 경우 플래그를 전달하여이를 판별 할 수 있습니다.

// only use when ignoring whitespace 
.replace(/\s/g, ''); 

또한, '' 우리가 이런 경우 즉시 false을 반환 할 수 있습니다 아무것도 할 필요가 없기 때문에 회문 상단으로 이동할 수 있습니다하지 않을 수 있습니다 당신의 특별한 경우 확인 :

예 :

function palindrome(str, ignoreWS) { 
 
    if (str === '') { 
 
    return false; 
 
    } 
 
    
 
    let reChar = ignoreWS 
 
    ? str.toLowerCase().replace(/\s/g, '') 
 
    : str.toLowerCase(); 
 

 
    let checkPalindrome = reChar.split('').reverse().join(''); 
 
    return (reChar === checkPalindrome); 
 
} 
 

 
console.log(
 
    palindrome('a b c  cb a', true) // true 
 
) 
 

 
console.log(
 
    palindrome('a b c  cb a') // false 
 
) 
 

 
console.log(
 
    palindrome('') // false 
 
)

+0

만약 내가 문장을 거울을 쓰지만 다른 공백이 있다면 문장이 순수한 궁전이 아니라는 사실이 틀렸다는 것을 알았지 만 나는 이것을 수행했다. –

+0

음, 무시할 수는 없으며 공백을 무시하지 않을 수도 있습니다. 다음 두 개의 함수를 원하거나 무시할 것인지를 결정하는 매개 변수를 전달하거나 – nem035

+0

을 사용하면 모든 테스트가 하나의 함수에 있어야합니다. 부울로 두 번째 매개 변수가 있습니다. 문제는 어떻게해야할지 모르겠다 ... –