반응형
문제 출처 :
https://www.acmicpc.net/problem/15927
알고리즘 분석 :
문제 해결에 필요한 사항
1. 구현
1. 만약 어떤 문자열이 있는데 회문 검사를 했을때 회문이 아니라면 정답은 문자열의 길이이다.
2. 문자열이 회문인데 모두 같은 문자면 정답은 -1이다.
3. 문자열이 회문인데 하나라도 다른 문자가 있다면 정답은 문자열의 길이 - 1이다.
소스 코드 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <iostream> #include <cstdio> #include <string> using namespace std; int main() { string str; cin >> str; bool same = true; int len = str.size(); for (int i = 0; i < len / 2; i++) { if (str[i] != str[len - i - 1]) return !printf("%d", str.size()); else if (str[i] != str[i + 1]) same = false; } if (!same) return !printf("%d", str.size() - 1); else return !printf("-1"); return 0; } // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
반응형
'Applied > 알고리즘 문제풀이' 카테고리의 다른 글
[15965번] K번째 소수 (0) | 2018.09.21 |
---|---|
[9882번] Balanced Teams (0) | 2018.09.21 |
[5670번] 휴대폰 자판 (0) | 2018.07.15 |
[2591번] 숫자 카드 (0) | 2018.06.30 |
[13326번] Diameter (0) | 2018.06.28 |