fork download
  1. #include <iostream>
  2. #include <map>
  3. #include <string>
  4. #include <vector>
  5. #include <random>
  6.  
  7. std::string MakeData(std::size_t N){
  8. std::random_device RD;
  9. std::mt19937 MT(RD());
  10. //std::uniform_int_distribution<int> uid('a', 'z');
  11.  
  12. std::string Ch = "abcdefghijklnmopqrstuvwxyz";
  13.  
  14. std::string R;
  15.  
  16. for (size_t i = 0; i < N; i++)
  17. {
  18. R += Ch[MT()% Ch.size()];//あえて質の悪い採取方法をとっている。一様乱数が欲しかったらこういう書き方をしてはいけない。
  19. }
  20. return R;
  21. }
  22.  
  23. std::pair<int,std::vector<char>> MakeHoge(std::string str){
  24. std::map<char, int> M;
  25. std::map<int, std::vector<char>> MV;
  26.  
  27. for (auto& o : str)M[o]++;
  28. for (auto&o : M)MV[o.second].push_back(o.first);
  29.  
  30. return *(MV.rbegin());
  31. }
  32.  
  33. bool Show(std::pair<int,std::vector<char>>& P,std::string str){
  34. std::cout << "RESULT:"<<str<<" -> "<<P.first<<'@';
  35. for (auto& o : P.second) std::cout << o << ',';
  36. std::cout << std::endl;
  37.  
  38. return 0;
  39. }
  40.  
  41. int main(){
  42. std::string str;
  43. std::pair<int, std::vector<char>> P;
  44.  
  45. str = "aabaabbab";
  46. P = MakeHoge(str);
  47. Show(P,str);
  48.  
  49. str = MakeData(27);
  50. P = MakeHoge(str);
  51. Show(P,str);
  52.  
  53. return 0;
  54.  
  55. }
Success #stdin #stdout 0s 3436KB
stdin
Standard input is empty
stdout
RESULT:aabaabbab -> 5@a,
RESULT:jpqboifyrvtnorqqcicrrsyxsbq -> 4@q,r,