[Q. 01] 유효한 팰린드롬

2023. 3. 15. 15:34·코딩테스트/알고리즘
주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며 영문자와 숫자만을 대상으로 한다.

팰린드롬이란, 앞에서 읽든 뒤에서 읽든 같은 문장을 뜻한다.

 

먼저, 주어진 입력에서 여백, 공백, 특수문자 등을 지우고 숫자와 영문자만 남도록한다. 그 후, 소문자로 바꾸어 준다.

s = re.sub(r'[^a-zA-Z0-9]', '', s).lower()

 

내장 라이브러리 re를 사용하였고, sub 함수를 통해 a~Z와 0~9를 제외한 모든 문자를 제거하였고, lower함수를 통해 소문자로 만들었다.

 

그 다음, 플래그를 하나 만든 뒤 앞에서부터 체크하며 뒷 문자와 다른것이 False를 그렇지 않다면 True를 리턴하도록 하였다.

for i in range(0, len(s) // 2):
    if s[i] != s[-i-1]:
        return False

return True

 

전체 코드는 아래와 같다.

import re

class Solution:
    def isPalindrome(self, s: str) -> bool:
        s = re.sub(r'[^a-zA-Z0-9]', '', s).lower()
        
        for i in range(0, len(s) // 2):
            if s[i] != s[-i-1]:
                return False

        return True
저작자표시 비영리 변경금지 (새창열림)

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

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

    • 홈
  • 링크

    • GITHUB
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바