B6gn6c1ft7fihxnjyvp1
장지원
  • 2016.4.16 13:21
  • 조회수 66
  • 답변수 0
B6gn6c1ft7fihxnjyvp1
장지원
  • 2016.4.16 13:21
  • 조회수 66
  • 답변수 0

제가 한 방법말고 쉬운 방법없을까요?

제가 쓴 방법은 익명함수를 이용해야 하는데, 솔직히 입문이란 주제엔 안
맞는 것 같구요. 쉬운 모범 답안을 가르쳐 주셨으면 합니다. ;

와.. 근데 입문이 이렇게 어려우면 ㄷㄷㄷ;;

longest_palindrom.js
function longest_palindrom(s){
  var result = 0,
      splitStr = 0,
        splitLen = 0,
        tempArray = [],
        array = [],
        temp1,
        temp2;

  splitStr = s.split('');
  splitLen = splitStr.length;
  //alert(splitStr);
  for(var i=0; i<splitLen; i++){
      for(var j=i; j<splitLen; j++){

            if(i == j) continue;
             if(splitStr[i] === splitStr[j]){ // 최초 같은 글자의 애들~
                temp1 = s.substring(i, j+1);        

                 (function(a, b){
                    while(b - a > 2){ // j - i 결과가 2이상인 애들~                 
                       var a1 = ++a,
                            b1 = --b;

                     // 한 글자라도 안 맞으면 전체가 무효!!!
                     if(splitStr[a1] !== splitStr[b1]) break; 
                     temp2 = s.substring(a1, b1+1);
                  }

                  if(b - a == 2 || b - a == 1){ // j - i == 2이하인 애들~
                     temp2 = s.substring(a, b+1);
                      tempArray.push(temp2.length); 
                      tempArray.push(temp1.length); 
                  }              
                })(i, j);     
             }      
        }
  }

    array = tempArray.sort(function(a, b){
        return b - a;
    });

  return result = array[0];
}

//alert(longest_palindrom("토마토맛토마토"));
  • #자바스크립트 입문
  • #longest palindrom

0 답변

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.