본문 바로가기

Algorithm/String

(C++) - LeetCode (easy) 125. Valid Palindrome

반응형

https://leetcode.com/problems/valid-palindrome/

 

Valid Palindrome - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문자열을 다루는 문제였습니다.

📕 풀이방법

📔 풀이과정

공백을 제거하고 대문자면 소문자로 변형해 숫자와 소문자 alphabat만 남기는 getTrimedString함수를 수행해 걸러진 문자열을 s에 저장합니다.

📔 정답출력

문자열 길이의 절반까지만 for loop를 수행해 양 옆이 다르다면 false를 반환해줍니다.

모두 같다면 true를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    string getTrimedString(string s){
        string tmp;
        for(auto c : s) {
            if('a' <= c && c <= 'z' || '0' <= c && c <= '9') tmp += c;
            else if('A' <= c && c <= 'Z') tmp += c - 'A' + 'a';
        }
        return tmp;
    }
    bool isPalindrome(string s) {
        s = getTrimedString(s);
        int sz = s.size();
        for(int i = 0; i < sz / 2; i++) {
            if(s[i] != s[sz - 1 - i]) return false;
        }
        return true;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.