Advertisement

华为OD机试真题(100分) (C++全排列, 2022 Q4)

阅读量:

前言

复制代码
 #include<bits/stdc++.h>

    
  
    
 using namespace std;
    
 typedef long long ll;
    
  
    
 ll calc(int n)
    
 {
    
     if (n == 1)
    
     return 1;
    
     return n * calc(n - 1);
    
 }
    
  
    
 int main()
    
 {
    
     string s;
    
     cin >> s;
    
     ll sum, div = 1;
    
     auto n = s.size();
    
     unordered_map<char, int> mp;
    
     for (auto &c: s)
    
     mp[c]++;
    
     for (auto &[_, v]: mp)
    
     div *= calc(v);
    
  
    
     cout << calc(n) / div << endl;
    
     return 0;
    
 }
    
    
    
    

全部评论 (0)

还没有任何评论哟~