Contents

Develop
2017.06.27 14:38

[coding] Find all anagrams in a string

Views 1301 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

코딩테스트 관련 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);



?

List of Articles
No. Category Subject Author Date Views
61 Develop [ios] 비디오,네트워크,소셜로그인 테스트 file hooni 2017.04.04 806
60 Develop [ios] NSString, RegularExpression Find/Replace hooni 2017.04.14 959
59 Develop [ios] Facebook SDK 로그인 설명 file hooni 2017.04.19 1359
58 Develop [ios] 코코아 프로그래밍의 네이밍 룰(명명 규칙) hooni 2017.05.11 1292
57 Develop 리팩토링 계획안 file hooni 2017.05.15 879
56 Develop 사이버보안실무 발표자료 (2017.06.08) file hooni 2017.06.05 1364
55 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 894
54 Develop [android] 간단한 SQLIite 예제 hooni 2017.06.14 1473
53 Develop [android] SQLiteOpenHelper를 이용한 DBManager hooni 2017.06.14 2191
» Develop [coding] Find all anagrams in a string hooni 2017.06.27 1301
51 Develop [coding] 공부해야 하는거 ㅋㅋ secret hooni 2017.06.27 0
50 Develop [android] 안드로이드 앱 문서 샘플 - NCComix file hooni 2017.07.11 2223
Board Pagination Prev 1 ... 61 62 63 64 65 66 67 68 69 70 71 Next
/ 71