Develop
2017.06.27 14:38

[coding] Find all anagrams in a string

조회 수 1146 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
1093 Etc RSVP 란? file hooni 2017.11.22 989
1092 Database [mysql] 중복데이터 삭제하는 초간단 쿼리 hooni 2017.11.22 3432
1091 System/OS [mac] How to uninstall MySQL on Mac OS. hooni 2017.11.08 890
1090 System/OS OpenSSL로 ROOT CA 생성 및 SSL 인증서 발급하기 hooni 2017.10.28 1464
1089 System/OS 무료로 HTTPS 적용하기 (Let's Encrypt) file hooni 2017.10.28 1407
1088 Etc How to completely Uninstall Coda hooni 2017.10.24 2197
1087 Etc 영어. 불규칙 동사 정리 file hooni 2017.10.04 3517
1086 System/OS [linux] iptables 초간단 세팅 스크립트 hooni 2017.09.26 1243
1085 Develop [ios] VIN Scanner (VIN barcode) 스캐너 file hooni 2017.09.16 650
1084 System/OS [mac] Homebrew/rvm/cocoapod setting hooni 2017.07.29 1003
1083 Etc 캘리포니아 운전면허 문제 file hooni 2017.07.22 982
1082 Develop [android] 안드로이드 앱 문서 샘플 file hooni 2017.07.11 2111
1081 Develop [coding] 공부해야 하는거 ㅋㅋ secret hooni 2017.06.27 0
» Develop [coding] Find all anagrams in a string hooni 2017.06.27 1146
1079 Etc IT감사 기법 시험 file hooni 2017.06.14 1423
1078 Develop [android] SQLiteOpenHelper를 이용한 DBManager hooni 2017.06.14 2077
Board Pagination Prev 1 4 5 6 7 8 ... 74 Next
/ 74