fork(10) download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int contains_not_more_one_odd_characters_that_are_in_final(int freq[], int freqfinal[])
  4. {
  5. int count=0;
  6. for(int i=0;i<=9;i++)
  7. {
  8. if(freq[i]==freqfinal[i]&&freq[i]%2==1)
  9. count++;
  10. }
  11. //cout<<" ct "<<count<<endl;
  12. if(count>0)
  13. return 0;
  14. return 1;
  15. }
  16. int findlen(int freq[])
  17. {
  18. int ct=0;
  19. for(int i=0;i<=9;i++)
  20. if(freq[i]%2==1)
  21. ct++;
  22. if(ct>0)
  23. return 0;
  24. int val =0;
  25. for(int i=0;i<=9;i++)
  26. val+= freq[i];
  27. return val;
  28. }
  29. int main()
  30. {
  31. int t;
  32. scanf("%d",&t);
  33. while(t-->0)
  34. {
  35. string s;
  36. cin>>s;
  37. int freq[10],freqfinal[10];
  38. for(int i=0;i<=9;i++)
  39. {
  40. freq[i] =0;
  41. freqfinal[i] =0;
  42. }
  43. for(int i=0;i<s.size();i++)
  44. freqfinal[s[i]-'0']++;
  45. int i=0,j=1;
  46. freq[s[i]-'0']++;
  47. int max_length=0;
  48. while(j<s.size())
  49. {
  50. if(contains_not_more_one_odd_characters_that_are_in_final(freq,freqfinal))
  51. {
  52. freq[s[j]-'0']++;
  53. max_length = max(max_length,findlen(freq));
  54. j++;
  55. }
  56. else
  57. {
  58.  
  59. freq[s[i]-'0']--;
  60. i++;
  61.  
  62. }
  63.  
  64.  
  65. }
  66. int val=0;
  67. max_length = max(max_length,findlen(freq));
  68. cout<<max_length<<endl;
  69. }
  70. }
Success #stdin #stdout 0s 15232KB
stdin
1
6456522
stdout
0