Contents

Develop
2017.06.27 14:38

[coding] Find all anagrams in a string

조회 수 1136 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

코딩테스트 관련 URL

https://leetcode.com/problems/find-all-anagrams-in-a-string/#/description



# 내가 푼 내용

/**
 * @param {string} s
 * @param {string} p
 * @return {number[]}
 */
var findAnagrams = function(s, p) {
    var res = Array();
    
    if(s.length < p.length){
        return res;
    }
    
    p1 = Array.from(p).sort().join("");
    
    for(var i=0; i<=s.length-p.length; i++){
        var s1 = s.substring(i, p.length + i);
        s1 = Array.from(s1).sort().join("");
        if(s1 == p1){
            res.push(i);
        }
    }
    
    return res;
};

var s = "cbaebabacd";
var p = "abc";
var r = findAnagrams(s, p);

console.log(r);



# 봐도 모르는 넘사벽 정답을 그냥 Javascript로 변경만 한거 ㅋㅋ

/**
 * @param {string} s
 * @param {string} p
 * @return {number[]}
 */
var findAnagrams = function(s, p) {
    var res = Array();
    
    if(s.length < p.length){
        return res;
    }
    
    var hash = new Array(256).fill(0);
    var left = 0;
    var right = 0;
    var count = p.length;
    
    for(var i=0; i<p.length; i++){
	    //hash[p.charCodeAt(i)] = (hash[p.charCodeAt(i)] || 0) + 1;
	    hash[p.charCodeAt(i)]++;
	    console.log("hash["+p.charCodeAt(i)+"] "+hash[p.charCodeAt(i)]);
    }
    
    while(right < s.length){
	    if (hash[s.charCodeAt(right++)]-- >= 1){
		    count--;
	    }
	    
	    if(count == 0){
		    res.push(left);
	    }
	    
	    if(right - left == p.length && hash[s.charCodeAt(left++)]++ >= 0){
		    count++;
	    }
    }
    
    return res;
};

var s = "cbaebabacd";
var p = "abc";
var r = findAnagrams(s, p);

console.log(r);



?

  1. [ios] VIN Scanner (VIN barcode) 스캐너

    Date2017.09.16 CategoryDevelop Byhooni Views642
    Read More
  2. [android] 안드로이드 앱 문서 샘플

    Date2017.07.11 CategoryDevelop Byhooni Views2101
    Read More
  3. [coding] 공부해야 하는거 ㅋㅋ

    Date2017.06.27 CategoryDevelop Byhooni Views0
    Read More
  4. [coding] Find all anagrams in a string

    Date2017.06.27 CategoryDevelop Byhooni Views1136
    Read More
  5. [android] SQLiteOpenHelper를 이용한 DBManager

    Date2017.06.14 CategoryDevelop Byhooni Views2055
    Read More
  6. [android] 간단한 SQLIite 예제

    Date2017.06.14 CategoryDevelop Byhooni Views1319
    Read More
  7. 캘리포니아 운전면허 족보

    Date2017.06.12 CategoryDevelop Byhooni Views732
    Read More
  8. 사이버보안실무 발표자료 (2017.06.08)

    Date2017.06.05 CategoryDevelop Byhooni Views1197
    Read More
  9. 리팩토링 계획안

    Date2017.05.15 CategoryDevelop Byhooni Views744
    Read More
  10. [ios] 코코아 프로그래밍의 네이밍 룰(명명 규칙)

    Date2017.05.11 CategoryDevelop Byhooni Views1177
    Read More
  11. [ios] Facebook SDK 로그인 설명

    Date2017.04.19 CategoryDevelop Byhooni Views1154
    Read More
  12. [ios] NSString, RegularExpression Find/Replace

    Date2017.04.14 CategoryDevelop Byhooni Views832
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 71 Next
/ 71