Approach

  • for문을 통해 문자열 s에서 한 문자씩 받아온다.
  • 받아온 문자 c가 소문자 a~z, 대문자 A~Z, 숫자 0~9이면 문자열 str에 추가한다.
  • 문자만 받아온 str을 for문을 통해 처음과 끝에서부터 비교한다.
  • 비교하면서 값이 일치하지 않으면 false를 반환.

추가적인 해결방법

  • isalph() 활용하여 문자열만 받아오는 방법
  • str 중간에서 양쪽으로 퍼지면서 값을 비교하는 방법

Code

class Solution {
public:
    bool isPalindrome(string s) {
        string str = "";

        bool flag = 1;
        for(auto c: s)
        {
            if(c >= 'a' && c <= 'z')
            {
                str += c;
            }
            else if(c >= 'A' && c <= 'Z')
            {
                str += c + 32;
            }
            else if(c >= '0' && c <= '9')
            {
                str += c;
            }
        }

        cout << str;

        for(int i = str.length() - 1; i >= 0; i--)
        {
            if(str[i] != str[str.length() - 1 - i])
            {
                flag = 0;
            }
        }

        return flag;
    }
};

Result

profile
누누의 잡다저장소

0개의 댓글