[알고리즘] Leetcode_125_Valid_Palindrome

jeongjwon·2023년 3월 21일
0

알고리즘

목록 보기
1/48

Problem

Solve

  1. 문자열을 모두 소문자로 변환시킨다. ➡️ toLowerCase() 사용
  2. 문자열의 팰린드롬의 유효성을 판별하기 위해서 공백 , 특수문자를 제거하고 오직 영숫자만 남게 한다. ➡️ replaceAll 사용
class Solution {
    public boolean isPalindrome(String s) {
	
        String newString = s.toUpperCase().replaceAll("[^ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]", "");
        // for 문 이용
        // for(int i = 0 ; i < newString.length()/2 ; i++){
        //     if(newString.charAt(i) != newString.charAt(newString.length()-1-i)){
        //         return false;
        //     }
        // }
        
        // while 문 이용
        int left = 0;
        int right = newString.length()-1;
        while(left < right){
            if(newString.charAt(left) == newString.charAt(right)){
                left++;
                right--;
            }else{
                return false;
            }
        }
        return  true;

    }
}

⭐️ Key Point ⭐️

정규표현식

✅ 텍스트에서 원하는 조건과 일치하는 문자열을 찾아내거나, 원하는 조건과 텍스트가 일치하는지 참/거짓 여부를 판단하는 등의 상황에 사용된다.

[^a-zA-Z0-9]

  • [] : 문자열을 뜻한다.

  • [^문자열] : 문자열 안의 not

  • ^, \A : 문자열의 시작

  • $ : 문자열의 종료

  • a-z : 소문자 전체

  • A-Z : 대문자 전체

  • 0-9 : 숫자 전체

  • 가-힣 : 한글 전체

  • \d : 숫자와 매치, [0-9] 와 동일한 표현식

  • \D : 숫자와 아닌 것과 매치, [^0-9] 와 동일한 표현식

  • \s : whitespace 문자와 매치, [ \t\n\r\r\f\v] 와 동일한 표현식

  • \S : whitespace 문자가 아닌 것와 매치, [^ \t\n\r\r\f\v]
    동일한 표현식

  • \w : 문자+숫자와 매치, [a-zA-Z0-9_] 와 동일한 표현식

  • \W : 문자+숫자가 아닌 문자와 매치, [^a-zA-Z0-9_] 와 동일한 표현식

정규표현식 연습해보기

치환

0개의 댓글