8.15老虎證券筆試
第一題
#include<bits/stdc++.h> using?namespace?std; vector<string>?sb(string?str) { ????vector<string>?r; ????sort(str.begin(),str.end()); ????do{ ????????string?temp; ????????for(int?i=0;i<str.size();i++) ????????{ ????????????temp+=str[i]; ????????????if(i!=str.size()-1)?temp+="-"; ????????} ????????r.push_back(temp); ????}while(next_permutation(str.begin(),str.end())); ????return?r; } int??main() { ????string?temp; ????cin>>temp; ????unordered_map<char,int>?mp; ????for(int?i=0;i<temp.size();i++) ????{ ????????mp[temp[i]]=i; ????} ????auto?wtf?=?sb(temp); ???? ????sort(wtf.begin(),wtf.end(),[&](string?a,string?b){ ???????return?mp[a[0]]<mp[b[0]]||(?mp[a[0]]==mp[b[0]]&&mp[a[2]]<mp[b[2]])||(?mp[a[0]]==mp[b[0]]&&mp[a[2]]==mp[b[2]]&&mp[a[4]]<mp[b[4]]); ????}); ????for(auto?c:wtf) ????{ ????????cout<<c<<endl; ????} ????return?0; }第二題:雙指針就行了?