반응형
https://leetcode.com/problems/valid-palindrome/
문자열을 다루는 문제였습니다.
📕 풀이방법
📔 풀이과정
공백을 제거하고 대문자면 소문자로 변형해 숫자와 소문자 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;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > String' 카테고리의 다른 글
(C++) - LeetCode (easy) 344. Reverse String (0) | 2023.02.16 |
---|---|
(C++) - LeetCode (easy) 290. Word Pattern (0) | 2023.02.07 |
(C++) - LeetCode (easy) 58. Length of Last Word (0) | 2022.11.03 |
(C++, Rust) - 백준(BOJ) 23303 : 이 문제는 D2 입니다. (0) | 2022.09.14 |
백준(BOJ) 4740 : 거울, 오! 거울 (0) | 2022.08.13 |