[Q1] 유효한 팰린드롬

2022. 11. 30. 22:06·코딩테스트/알고리즘

[리트코드 125] Valid Palindrome

주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다.

 

팰린드롬이란 앞으로 읽은 것이랑, 뒤로 읽은 것이 같은 문자열을 말한다. 한글로 예를들면 '다시 합창 합시다' 이런 것들이다.

 

주어진 조건에서 대소문자를 구분하지 않으며 영문자와 숫자만을 대상으로 하므로, 먼저 정규식을 통해 문자열을 걸러냈다.

import re

class Solution:
    def isPalindrome(self, s: str) -> bool:
        
        forward = re.sub('[^a-zA-Z0-9]', '', s).lower()

 

re 라이브러리를 통해 알파벳과 숫자만을 걸러낸 후, 알파벳은 lower()함수를 통하여 소문자로 통일하였다.

그 다음, 대상 문자열을 뒤집은 backward 문자열을 생성하여 앞에서 부터 비교하며 틀린 경우가 있을 경우 False 값을, 맞을 경우 True 값을 출력하도록 하였다.

def isPalindrome(self, s: str) -> bool:
        
        forward = re.sub('[^a-zA-Z0-9]', '', s).lower()
        backward = forward[::-1]

        isPal = True

        for i in range(len(forward)):
            if forward[i] != backward[i]:
                isPal = False
            
            if not isPal:
                break

        return isPal

 

'코딩테스트 > 알고리즘' 카테고리의 다른 글

[Q6] 가장 긴 팰린드롬 부분 문자열  (0) 2022.12.01
[Q4] 가장 흔한 단어  (0) 2022.12.01
[Q3] 로그파일 재정렬  (0) 2022.12.01
[Q2] 문자열 뒤집기  (0) 2022.11.30
코딩테스트 연습 기록  (0) 2022.11.30
'코딩테스트/알고리즘' 카테고리의 다른 글
  • [Q4] 가장 흔한 단어
  • [Q3] 로그파일 재정렬
  • [Q2] 문자열 뒤집기
  • 코딩테스트 연습 기록
뚝딱뚝딱2
뚝딱뚝딱2
  • 뚝딱뚝딱2
    개발도상국
    뚝딱뚝딱2
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 공부
        • Java
        • Spring Boot
        • LORA
      • Web
        • 인스타 클론 코딩
        • GPT 응답 API 서버
        • Spring Boot 예외 처리
        • 코테 준비용 서비스 만들기
      • DevOps
        • 쿠버네티스
        • 서버 만들기
      • 코딩테스트
        • 알고리즘
      • 교육
        • 스파르타코딩클럽 - 내일배움단
        • 혼자 공부하는 컴퓨터 구조 운영체제
      • 잡다한것
  • 블로그 메뉴

    • 홈
  • 링크

    • GITHUB
  • 공지사항

  • 인기 글

  • 태그

    OpenAI API
    예외
    리액트
    오블완
    MSA
    클론코딩
    티스토리챌린지
    쿠버네티스
    mapstruct
    Entity
    백준
    spring boot
    인스타그램
    REST API
    스프링부트
    chat GPT
    Java
    클러스터
    react
    스프링 부트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
뚝딱뚝딱2
[Q1] 유효한 팰린드롬
상단으로

티스토리툴바