반응형
풀이방법
1. 처음 줄 수에 대한 입력을 받은 후 '\n'가 cin의 버퍼에 남아있을 때 비워주기 위해 ignore함수를 호출해줍니다.
2. cin의 에러비트를 초기화해주고 문장을 입력받습니다.
3. 대문자가 있다면 소문자로 변환해줍니다.
4. 팰린드롬 여부를 검사한 후 출력합니다.
Code
#include <bits/stdc++.h>
using namespace std;
string toLowerCase(string word){
string tmp = "";
for(int i = 0; i < word.size(); i++){
if('A' <= word[i] && word[i] <= 'Z'){
tmp += word[i] - 'A' + 'a';
}else
tmp += word[i];
}
return tmp;
}
bool isPalindrome(string word){
for(int i = 0; i < word.size()/2; i++){
if(word[i] != word[word.size()-1-i]) return false;
}
return true;
}
int main(){
int n;
cin >> n;
cin.ignore();
while(n--){
string word;
cin.clear();
getline(cin,word);
word = toLowerCase(word);
if(isPalindrome(word)) cout << "Yes\n";
else cout << "No\n";
}
}
'Algorithm > String' 카테고리의 다른 글
(C++) - 백준(BOJ) 1120번 : 문자열 (0) | 2021.02.15 |
---|---|
(C++) - 백준(BOJ) 6996번 : 애너그램 (0) | 2021.02.13 |
(C++) - 백준(BOJ) 13163번 : 닉네임에 갓 붙이기 (0) | 2021.02.12 |
(C++) - 백준(BOJ) 1871번 : 좋은 자동차 번호판 (0) | 2021.02.10 |
(C++) - 백준(BOJ) 15904번 : UCPC는 무엇의 약자일까? (0) | 2021.02.09 |