Contents

Develop
2017.06.27 14:38

[coding] Find all anagrams in a string

조회 수 1140 댓글 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. [vim] vim 명령으로 &#65279; 문자 제거하기 (remove 65279 bomb)

    Date2021.02.03 CategoryDevelop Byhooni Views1161
    Read More
  2. [ios] Facebook SDK 로그인 설명

    Date2017.04.19 CategoryDevelop Byhooni Views1158
    Read More
  3. [android] Calling activity function from separate class

    Date2016.11.15 CategoryDevelop Byhooni Views1157
    Read More
  4. [ios] Objective-C Types & Storage Capacity

    Date2015.07.22 CategoryDevelop Byhooni Views1153
    Read More
  5. GPL, AGPL, MPL,.. 한눈에 보는 오픈소스SW 라이선스

    Date2014.10.14 CategoryDevelop Byhooni Views1146
    Read More
  6. macOS에 node, npm 설치하기 (homebrew)

    Date2021.11.06 CategoryDevelop Byhooni Views1142
    Read More
  7. [coding] Find all anagrams in a string

    Date2017.06.27 CategoryDevelop Byhooni Views1140
    Read More
  8. [ios] UIView 계층구조

    Date2015.01.03 CategoryDevelop Byhooni Views1124
    Read More
  9. [maven] Mac OS에 메이븐(maven) 설치하기

    Date2015.01.21 CategoryDevelop Byhooni Views1106
    Read More
  10. [js] 문자열에서 숫자만 걸러내기 (jQuery 안쓰고 정규표현식)

    Date2017.12.14 CategoryDevelop Byhooni Views1104
    Read More
  11. [ios] FlckrFeed Example App (Swift)

    Date2016.11.27 CategoryDevelop Byhooni Views1075
    Read More
  12. [ios] 동영상 플레이어 샘플 (for Local File)

    Date2017.02.07 CategoryDevelop Byhooni Views1073
    Read More
Board Pagination Prev 1 ... 58 59 60 61 62 63 64 65 66 67 ... 71 Next
/ 71