File tree Expand file tree Collapse file tree 1 file changed +46
-10
lines changed Expand file tree Collapse file tree 1 file changed +46
-10
lines changed Original file line number Diff line number Diff line change 1
1
/**
2
- * @param { string } s
3
- * @return { boolean }
2
+ * 시간 복잡도: O(n)
3
+ * 공간 복잡도: O(n)
4
4
*/
5
- var isPalindrome = function ( s ) {
6
- // 숫자와 문자만 추출하는 정규식
7
- const REGEX = / [ 0 - 9 a - z A - Z ] / g;
5
+ // var isPalindrome = function (s) {
6
+ // // 숫자와 문자만 추출하는 정규식
7
+ // const REGEX = /[0-9a-zA-Z]/g;
8
+
9
+ // const wordArr = s.match(REGEX);
10
+
11
+ // // 문자가 비어있으면 true반환
12
+ // if (!wordArr) return true;
13
+
14
+ // let l = 0;
15
+ // let r = wordArr.length - 1;
16
+
17
+ // while (l < r) {
18
+ // if (wordArr[l].toLocaleLowerCase() !== wordArr[r].toLocaleLowerCase()) return false;
19
+ // console.log(l, r);
20
+ // l += 1;
21
+ // r -= 1;
22
+ // }
8
23
9
- const wordArr = s . match ( REGEX ) ;
24
+ // return true;
25
+ // };
10
26
11
- // 문자가 비어있으면 true반환
12
- if ( ! wordArr ) return true ;
27
+ /**
28
+ * 시간 복잡도: O(n)
29
+ * 공간 복잡도: 1
30
+ */
31
+ var isPalindrome = function ( s ) {
32
+ // 숫자와 문자만 추출하는 정규식
33
+ const isAlnum = ( char ) =>
34
+ ( char >= 'a' && char <= 'z' ) || ( char >= 'A' && char <= 'Z' ) || ( char >= '0' && char <= '9' ) ;
13
35
14
36
let l = 0 ;
15
- let r = wordArr . length - 1 ;
37
+ let r = s . length - 1 ;
16
38
17
39
while ( l < r ) {
18
- if ( wordArr [ l ] . toLocaleLowerCase ( ) !== wordArr [ r ] . toLocaleLowerCase ( ) ) return false ;
19
40
console . log ( l , r ) ;
41
+ if ( ! isalnum . test ( s [ l ] ) ) {
42
+ l += 1 ;
43
+ continue ;
44
+ }
45
+ if ( ! isalnum . test ( s [ r ] ) ) {
46
+ r -= 1 ;
47
+ continue ;
48
+ }
49
+ if ( s [ l ] . toLowerCase ( ) !== s [ r ] . toLowerCase ( ) ) {
50
+ return false ;
51
+ }
20
52
l += 1 ;
21
53
r -= 1 ;
22
54
}
23
55
24
56
return true ;
25
57
} ;
58
+
59
+ const s = 'A man, a plan, a canal: Panama' ;
60
+
61
+ console . log ( isPalindrome ( s ) ) ;
You can’t perform that action at this time.
0 commit comments