728x90
반응형
문제 풀기 전 생각 :
/*
문자열의 안에 있는 알파벳과 숫자가 아닌 것들은 제외시키고
남아있는 것들로 앞뒤가 같은지 반복문으로 판별한다.
*/
class Solution {
public:
bool isPalindrome(string s) {
string str = "";
for(int i=0 ; i<s.length() ; i++){
if(isalpha(s[i]) != 0 || isdigit(s[i])) str += toupper(s[i]);
}
for(int i=0 ; i<str.length()/2 ; i++){
if(str[i] != str[str.length() - i-1] ) return false;
}
return true;
}
};
https://leetcode.com/problems/valid-palindrome/
풀 때 어려웠던 점 또는 느낀점 :
isalpha() 함수의 리턴값이 boolean이 아니라
int 라는 것을 알 수 있었다.
개선방안 :
class Solution {
public:
bool isPalindrome(string s) {
string str="";
for(int i=0;i<s.length();i++)
{
if((s[i]>='a' && s[i]<='z') || (s[i]>='A' && s[i]<='Z') || (s[i]>='0' && s[i]<='9'))
str+=tolower(s[i]);
}
int len=str.length();
for(int i=0;i<len/2;i++)
{
if(str[i]!=str[len-i-1])
return false;
}
return true;
}
};
나와 같은 접근법이다.
차이점으로는 나는 모든 문자를 대문자로 변환했지만
위의 코드는 소문자로 변환했다는 사실이다.
728x90
반응형
'Problem Solving' 카테고리의 다른 글
[C++] [프로그래머스] 약수의 개수와 덧셈 (0) | 2021.07.25 |
---|---|
[C++] [백준 2941] 크로아티아 알파벳 (0) | 2021.07.25 |
[C++] [LeetCode 412] Fizz Buzz (pps 5-5) (0) | 2021.07.22 |
[C++] [LeetCode 1154] Day of the Year (pps 5-4) (0) | 2021.07.18 |
[JAVA] [백준 5355] 화성 수학 (pps 5-2) (0) | 2021.07.18 |
댓글