Develop
2017.06.27 14:38

[coding] Find all anagrams in a string

조회 수 1149 추천 수 0 댓글 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);


?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
793 Develop [ios] VIN Scanner (VIN barcode) 스캐너 file hooni 2017.09.16 652
792 Develop [android] 안드로이드 앱 문서 샘플 file hooni 2017.07.11 2115
791 Develop [coding] 공부해야 하는거 ㅋㅋ secret hooni 2017.06.27 0
» Develop [coding] Find all anagrams in a string hooni 2017.06.27 1149
789 Develop [android] SQLiteOpenHelper를 이용한 DBManager hooni 2017.06.14 2081
788 Develop [android] 간단한 SQLIite 예제 hooni 2017.06.14 1337
787 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 744
786 Develop 사이버보안실무 발표자료 (2017.06.08) file hooni 2017.06.05 1222
785 Develop 리팩토링 계획안 file hooni 2017.05.15 757
784 Develop [ios] 코코아 프로그래밍의 네이밍 룰(명명 규칙) hooni 2017.05.11 1189
783 Develop [ios] Facebook SDK 로그인 설명 file hooni 2017.04.19 1166
782 Develop [ios] NSString, RegularExpression Find/Replace hooni 2017.04.14 846
781 Develop [ios] 비디오,네트워크,소셜로그인 테스트 file hooni 2017.04.04 697
780 Develop [ios] Xcode에서 특정 파일만 ARC 따로 설정하는 방법 file hooni 2017.03.29 956
779 Develop 사이버보안실무 수업 메모 secret hooni 2017.03.23 0
778 Develop Mac OS 에 Jenkins 설치하기 (Homebrew) 2 file hooni 2017.03.15 8136
Board Pagination Prev 1 2 3 4 5 6 ... 53 Next
/ 53