fork(5) download
  1. import collections
  2.  
  3. d = raw_input();
  4. d = int(d)
  5.  
  6. while d:
  7. dish = raw_input()
  8. na=0
  9. #print dish, len(dish)
  10. if (len(dish)<2):
  11. na=1
  12. elif (len(dish)!=1 and len(dish)%2!=0):
  13. letters = collections.Counter(dish);
  14. #print letters
  15. c = letters.values()
  16. one=0
  17. two=0
  18. for i in range(len(c)):
  19. if (c[i]%2!=0):
  20. one+=1;
  21. elif (c[i]%2==0):
  22. two+=1;
  23. else:
  24. na=1;
  25. break;
  26. """print one
  27. print two
  28. print na"""
  29.  
  30.  
  31. if (na!=1):
  32. if (one==1):
  33. for l, v in letters.iteritems():
  34. if (v%2!=0):
  35. sep=l;
  36. #print sep;
  37. dish1 = dish.replace(sep,"");
  38. #print dish1
  39.  
  40. s1 = dish1[:len(dish1)/2]
  41. s2 = dish1[len(dish1)/2:]
  42.  
  43. #print s1
  44. #print s2
  45.  
  46. if (s1!=s2):
  47. na=1;
  48.  
  49. """for i in range(0,len(dish1)/2):
  50. if (dish1[i]!=dish1[i+(len(dish1)/2)+1]):
  51. na=1;
  52. break;
  53. for i in range(len(c)):
  54. if (c[i]==1):
  55. sep=i;
  56. break;
  57. print letters[i];"""
  58. else:
  59. na=1;
  60. else:
  61. na=1;
  62. elif (len(dish)!=1 and len(dish)%2==0):
  63. s1 = dish[:len(dish)/2]
  64. s2 = dish[len(dish)/2:]
  65. #print s1
  66. #print s2
  67. if (s1!=s2):
  68. na=1;
  69. if (na==0):
  70. print "YES"
  71. elif (na==1):
  72. print "NO"
  73. d=d-1
Success #stdin #stdout 0.01s 9128KB
stdin
3
aba
abac
abcd
stdout
YES
NO
NO