fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main(){
  5. // freopen("input.txt","r",stdin);
  6. int t;
  7. cin>>t;
  8. int n;
  9. string s;
  10. while(t--){
  11. cin>>n>>s;
  12. int arr[n] = {0};
  13. int l = 0;
  14. int r = n-1;
  15. int temp = 0;
  16. bool flag = true;
  17. while(l<r){
  18. // cout<<l<<" "<<r<<endl;
  19. if(s[l] != s[r]){
  20. if(l+1 < r || r-1 > l){
  21. if(s[l] == s[r-1] && arr[r-1] == 0 && arr[r] == 0){
  22. char ch = s[r];
  23. s[r] = s[r-1];
  24. s[r-1] = ch;
  25. temp++;
  26. arr[r-1] = 1;
  27. arr[r] = 1;
  28. }
  29. if(s[r] == s[l+1]&& arr[l] == 0 && arr[l+1] == 0){
  30. char ch = s[l];
  31. s[l] = s[l+1];
  32. s[l+1] = ch;
  33. arr[l] = 1;
  34. arr[l+1] = 1;
  35. temp++;
  36. }
  37.  
  38. }
  39. }
  40. l++;
  41. r--;
  42. }
  43.  
  44. l = 0;
  45. r = n-1;
  46. // cout<<s<<endl;
  47. while(l < r){
  48. if(s[l] != s[r]){
  49. flag = false;
  50. break;
  51. }
  52. l++;
  53. r--;
  54. }
  55.  
  56. if(flag)
  57. cout<<"YES"<<endl<<temp<<endl;
  58. else
  59. cout<<"NO"<<endl;
  60. }
  61. return 0;
  62. }
Success #stdin #stdout 0s 4500KB
stdin
2
6
baabaa
6
acbcab
stdout
YES
2
YES
2