fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. bool CheckPalindrome(string& str, int size) {
  9. for (int i = 0; i < size / 2; i++) {
  10. if (str[i] != str[size - (i + 1)]) {
  11. return false;
  12. }
  13. }
  14. return true;
  15. }
  16.  
  17.  
  18. int main() {
  19. int T = 0;
  20. vector<string> Strs;
  21. vector<int> Ans;
  22. char tmp[2] = "";
  23. bool sw = false;
  24.  
  25. cin >> T;
  26.  
  27. cin.ignore();
  28. for (int i = 0; i < T; i++) {
  29. string input;
  30. getline(cin, input);
  31. Strs.push_back(input);
  32. }
  33.  
  34. for (int i = 0; i < T; i++) {
  35. int size = Strs[i].size();
  36. if (CheckPalindrome(Strs[i], size)) {
  37. Ans.push_back(0);
  38. continue;
  39. }
  40.  
  41. size_t pos = 0;
  42. while(pos < size) {
  43. tmp[0] = Strs[i][pos];
  44. if (CheckPalindrome(Strs[i].erase(pos, 1), size - 1)) {
  45. Ans.push_back(1);
  46. sw = true;
  47. break;
  48. }
  49. Strs[i].insert(pos, tmp);
  50. pos += 1;
  51. }
  52. if (sw) {
  53. sw = false;
  54. continue;
  55. }
  56. Ans.push_back(2);
  57. }
  58.  
  59. for (int i = 0; i < T; i++) {
  60. cout << Ans[i] << endl;
  61. }
  62. return 0;
  63. }
Success #stdin #stdout 0.01s 5324KB
stdin
7
abba
summuus
xabba
xabbay
comcom
comwwmoc
comwwtmoc
stdout
0
1
1
2
2
0
1