LeetCode Javascript 구현 100. Same Tree 171. Excel 시트 열 번호

10364 단어
100. Same Tree
/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} p
 * @param {TreeNode} q
 * @return {boolean}
 */
var isSameTree = function(p, q) {
    if(p===null&&q===null){
        return true;
    }
    if(p===null&&q!==null){
        return false;
    }
    if(q===null&&p!==null){
        return false;
    }
    if(p.val!==q.val){
        return false;
    }
    if(isSameTree(p.left,q.left)&& isSameTree(p.right,q.right)){
    return true;
    }
    else{
       return false;
    }
    
};

두 개의 이 진 트 리 가 같 는 지 아 닌 지 를 판단 하 는 것 입 니 다. 제 생각 은 여러 가지 상황 이 열 거 된 것 입 니 다. 실 수 를 하면 false 입 니 다. 그리고 false 는 맨 위로 올 라 가 마지막 에 정확 한 boolean 값 을 되 돌려 줍 니 다.
Your runtime beats 74.85% of javascriptsubmissions
171. Excel Sheet Column Number
/**
 * @param {string} s
 * @return {number}
 */
var titleToNumber = function(s) {
     var sl = s.length;
     var sc,result=0,i=0;
     while(sl!==0){
        sc = s.charAt(sl-1);
        result = (sc.charCodeAt()-64)*Math.pow(26,i)+result;
        sl--;
        i++;
     }
     return result;
};

이 문 제 는 주로 함수 charAt () 을 사용한다.charCodeAt();Math. pow (x, y) 는 26 진법 으로 변환 하 는 연산 에 해당 하 며, 자모 와 숫자 사이 의 변환 은 ASCII 코드 로 이 루어 집 니 다.Your runtime beats 22.00% of javascriptsubmissions. 왠 지 제 방법 은 항상 매 운 닭 입 니 다.기회 가 되면 두 번 째 할 때 효율 을 추구 하 세 요.
242. Valid Anagram
이 문제 의 나의 방법 은 코드 가 시간 을 초과 하여 불행 하 다 는 것 이다.
   //    
    var isAnagram = function(s, t) {
    s = s.split("");
    t = t.split("");
    var bb = true;
    if(s==""&&t==""){
        return true;
    }
    if(s.length!=t.length){
        return false;
    }
    var sl = s.length;
    for(i=0;i<=sl-1;i++){
        var sin = s.indexOf(t[i]);
        if(sin!=-1){
            delete s[sin];
            // s.splice(sin,1);
            // t.splice(0,1);
        }
        else{
            bb=false;
        }
    }
    return bb;
  
};

 
그래서 나 는 정확 한 해법 을 찾 아 다음 두 가 지 를 찾 았 다.
//           
/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isAnagram = function(s, t) {
    if(s.length !== t.length){
        return false;
    }
    var s1 = s.split("");
    var t1 = t.split("");
    s1.sort();
    t1.sort();
    var ss = s1.join("");
    var tt = t1.join("");
    if(ss !== tt){
      return false;
    }
    return true;
};

다음은 해시 표 방법 입 니 다. 산 목록 (Hash table, 해시 표 라 고도 함) 은 키 코드 값 (Key value) 에 따라 직접 접근 하 는 데이터 구조 입 니 다.즉, 키 코드 값 을 표 의 한 위치 에 비 추어 기록 에 접근 함으로써 검색 속 도 를 빠르게 하 는 것 이다.이 매 핑 함 수 는 해시 함수 라 고 하 는데 기록 을 저장 하 는 배열 을 산 목록 이 라 고 합 니 다.
데이터 구조의 힘 을 느 낀 셈 이다!
//
  /**
   * @param {string} s
   * @param {string} t
   * @return {boolean}
   */
  var isAnagram = function(s, t) {
      if(s.length !== t.length){
          return false;
      }
     var i, dict = {};
    for(i = 0; i < s.length; i++){
         if(!dict[s[i]]){
             dict[s[i]] = 1;
         }else{
             dict[s[i]]++;
         }
     }
     for(i = 0; i < t.length; i++){
         if(!dict[t[i]] || dict[t[i]] === 0){
             return false;
         }else{
             dict[t[i]]--;
         }
    }
     return true;
 };

 
속상 해, 내 가 멍청 한 것 같 아 -.늦 었 다. 자 야 겠 다.꿈 에서 쉬어!

좋은 웹페이지 즐겨찾기