File tree Expand file tree Collapse file tree 1 file changed +77
-0
lines changed Expand file tree Collapse file tree 1 file changed +77
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {string } s
3
+ * @param {string } t
4
+ * @return {boolean }
5
+ *
6
+ */
7
+
8
+ var isAnagram = function ( s , t ) {
9
+ // 두 문자열의 길이가 같지않다면 false
10
+ if ( s . length !== t . length ) {
11
+ return false ;
12
+ } ;
13
+
14
+ // Map을 사용해서 데이터 최신화
15
+ let count = new Map ( ) ;
16
+
17
+ // set으로 해당 문자를 key, 갯수를 value로 카운트
18
+ for ( let char of s ) {
19
+ count . set ( char , ( count . get ( char ) || 0 ) + 1 )
20
+ }
21
+
22
+ for ( let char of t ) {
23
+ // 새로운 문자가 map에 없거나, 이미 카운트가 0이라면 false
24
+ if ( ! count . has ( char ) || count . get ( char ) === 0 ) {
25
+ return false ;
26
+ }
27
+ // 문자 카운트 -1
28
+ count . set ( char , ( count . get ( char ) - 1 ) )
29
+ }
30
+
31
+ return true ;
32
+ }
33
+
34
+ /*
35
+ * 문제: 두 문자열의 구성요소 비교
36
+ *
37
+ * 생각: 각 문자열에 상대 문자열의 스펠링이 있는지 확인하고 splice로 제거
38
+ * 결과: 타임리밋
39
+ var isAnagram = function (s, t) {
40
+ if (s.length !== t.length) {
41
+ return false;
42
+ };
43
+
44
+ let sArr = [];
45
+ let tArr = [];
46
+ let finder = 0;
47
+
48
+ for (let j = 0; j < s.length; j++) {
49
+ sArr.push(s[j]);
50
+ tArr.push(t[j]);
51
+ }
52
+
53
+ // 반복문을 돌며 s와 t를 비교
54
+ for (let i = 0; i < s.length; i++) {
55
+ //s[i]번 째가 t안에 있다면?
56
+ if (tArr.indexOf(sArr[0]) !== -1) {
57
+ // 찾은 인덱스를 저장해 줌 -> sArr 에서 splice먼저해버리면 배열이 달라져서 못찾음;;
58
+ finder = tArr.indexOf(sArr[0]);
59
+ //s[i]를 스플라이스로 빼고
60
+ sArr.splice(0, 1);
61
+ //t의 인덱스번호를 슬라이스로 뺌
62
+ tArr.splice(finder, 1);
63
+ }
64
+ console.log(i);
65
+ console.log(sArr);
66
+ console.log(tArr);
67
+ }
68
+
69
+ // s와 t의 길이가 0이면 true 아니면 fales
70
+ if (sArr.length === 0 && tArr.length === 0) {
71
+ return true;
72
+ }
73
+ else return false
74
+
75
+ };
76
+
77
+ */
You can’t perform that action at this time.
0 commit comments