File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ class Solution {
2+ public boolean isPalindrome (String s ) {
3+ /**
4+ 1. ๋ฌธ์ : ํฐ๋ฆฐ๋๋กฌ์ธ์ง ํ๋จํ๋ ๋ฌธ์ .
5+ 2. ์กฐ๊ฑด: ์ํ๋ฒณ ์๋ฌธ์๋ก ๋ณํ, ๋ฌธ์ ๋๋ ์ซ์๊ฐ ์๋๊ฑด ๋ชจ๋ ์ ๊ฑฐ (๊ณต๋ฐฑ, ์ผํ ๋ฑ))
6+ - left, right index ์ด์ค ํฌ์ธํฐ๋ก ํ์ด
7+ time complexity : O(n)
8+ space complexity : O(1)
9+ */
10+ boolean answer = true ;
11+ //๋ฌธ์์ด ์ถ๊ฐํ๋ฉด space complexity : O(n)
12+ //s = s.toLowerCase();
13+ //s = s.replaceAll("[^0-9a-z]", "");
14+ int left = 0 ;
15+ int right = s .length () - 1 ;
16+
17+ while (left < right ) {
18+ char l = s .charAt (left );
19+ char r = s .charAt (right );
20+
21+ //์ผ์ชฝ์ด ์ํ๋ฒณ or ์ซ์๊ฐ ์๋๋ฉด skip
22+ if (!Character .isLetterOrDigit (l )) {
23+ left += 1 ;
24+ continue ;
25+ }
26+ //์ค๋ฅธ์ชฝ์ด ์ํ๋ฒณ or ์ซ์๊ฐ ์๋๋ฉด skip
27+ if (!Character .isLetterOrDigit (r )) {
28+ right -= 1 ;
29+ continue ;
30+ }
31+ if (Character .toLowerCase (l ) != Character .toLowerCase (r ) ) {
32+ return false ;
33+ }
34+ left += 1 ;
35+ right -= 1 ;
36+ }
37+
38+ return answer ;
39+ }
40+ }
You canโt perform that action at this time.
0 commit comments