코드노트

leetcode 125. Valid Palindrome 유효한 펠린드롬, JS, python 본문

Code note/자바스크립트 알고리즘 문제풀이

leetcode 125. Valid Palindrome 유효한 펠린드롬, JS, python

코드노트 2024. 1. 4. 23:56
더보기

A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads the same forward and backward. Alphanumeric characters include letters and numbers.

Given a string s, return true if it is a palindrome, or false otherwise.

모든 대문자를 소문자로 바꾸고 영숫자가 아닌 모든 문자를 제거한 후에 앞과 뒤로 같은 글자를 읽는 경우 구는 회문입니다. 영숫자는 문자와 숫자를 포함합니다.

문자열이 주어지면 회문이면 true로, 그렇지 않으면 false로 반환합니다.
 

문제 요약

- 주어지는 문자열이 팰린드롬인지 확인하면된다.

* 팰린드롬이란 앞뒤가 똑같은 단어나 문장으로 뒤집어도 같은 말이 되는 단어 또는 문장을 팬린드롬이라 한다.


Python

class Solution:
    def isPalindrome(self, s: str) -> bool:
        # 문자열 담는 곳
        strs=[]

        # 문자열을 순회하면서 문자인지 확인, 소문자로 배열에 추가
        for char in s:
            if char.isalnum():
                strs.append(char.lower())
        # while문으로 strs배열이 비워질때까지 배열의 앞, 뒤의 문자가 같은지 확인
        while len(strs) > 1: 
            if strs.pop(0) != strs.pop():
                return False

        return True

 

Javascript

var isPalindrome = function(s) {
    const strs = []
    for (let char of s) {
        if (/[a-zA-Z0-9]/.test(char)) {
            strs.push(char.toLowerCase());
        }
    }

    while (strs.length > 1) {
        if (strs.shift() !== strs.pop()) {
            return false;
        }
    }

    return true
};

 

 

- 알고리즘을 다시 공부하면서 느낀거지만 js보다 확실히 python을 사용하면 효율이 더 높아지는건 사실인거 같다..

js만으로 특정하지 않다면 python으로 코테를 보는게 더 좋을지도..