Advertisement
Guest User

Untitled

a guest
May 25th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. class Solution {
  2. public:
  3. string reorganizeString(string S) {
  4. map<char, int> M;
  5. int max_val = 0;
  6. for (int i = 0; i < S.length(); i++) {
  7. M[S[i]]++;
  8. max_val = max(max_val, M[S[i]]);
  9. }
  10.  
  11. vector<pair<char, int>> FreqOrder;
  12. for (const auto& k: M) {
  13. cout << k.first << ", " << k.second << endl;
  14. FreqOrder.push_back({k.first, k.second});
  15. }
  16.  
  17. sort(FreqOrder.begin(), FreqOrder.end(), [](const pair<char, int>& A, const pair<char, int>& B) {
  18. return A.second > B.second;
  19. });
  20.  
  21. if (max_val > (S.length() + 1)/2) return "";
  22. vector<char> result (S.length(), ' ');
  23. int index = 0;
  24. for (const auto& k: FreqOrder) {
  25. for (int i = 0; i < k.second; i++) {
  26. result[index] = k.first;
  27. if (index + 2 >= S.length()) index = 1;
  28. else index = (index + 2) ;
  29. }
  30. }
  31. string ret;
  32. for (int i = 0; i< result.size(); i++)
  33. ret += result[i];
  34. return ret;
  35. }
  36. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement