Develop
2017.06.27 14:38

[coding] Find all anagrams in a string

Views 3847 Votes 0 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
59 Develop 리팩토링 계획안 file hooni 2017.05.15 2345
58 Develop 사이버보안실무 발표자료 (2017.06.08) file hooni 2017.06.05 9579
57 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 2814
56 Develop [android] 간단한 SQLIite 예제 hooni 2017.06.14 3007
55 Develop [android] SQLiteOpenHelper를 이용한 DBManager hooni 2017.06.14 3564
» Develop [coding] Find all anagrams in a string hooni 2017.06.27 3847
53 Develop [coding] 공부해야 하는거 ㅋㅋ secret hooni 2017.06.27 0
52 Develop [android] 안드로이드 앱 문서 샘플 - NCComix file hooni 2017.07.11 4045
51 Develop [ios] VIN Scanner (VIN barcode) 스캐너 file hooni 2017.09.16 2262
50 Develop [php] mysql_ 과 mysqli_ 의 차이 hooni 2017.12.01 3914
49 Develop [php] Laravel 5.4: Specified key was too long error file hooni 2017.12.04 42516
48 Develop [js] URL 파싱하기 (jQuery 안쓰고) hooni 2017.12.14 3146
47 Develop [js] 문자열에서 숫자만 걸러내기 (jQuery 안쓰고 정규표현식) hooni 2017.12.14 3459
46 Develop [php][laravel] 초간단 MacOS에서 Laravel 개발 환경 구축 hooni 2017.12.15 4597
45 Develop [php][laravel] 라라벨 프로젝트 생성 및 구조 file hooni 2017.12.15 4598
44 Develop [php][laravel] 라라벨 개발환경 세팅하기 (Mac, Window) 2 file hooni 2017.12.15 5546
Board Pagination Prev 1 ... 48 49 50 51 52 53 Next
/ 53