51Nod1095 Anigram單詞(map+sort)
阿新 • • 發佈:2018-12-02
這道題思路很簡單,用map容器維護,把原有的字串放入一個map,然後排完序後的字串放入另一個map容器。
第一個map容器作用是判斷某字串是否出現過,第二個字串作用是記錄排序後字串出現的次數。
#include<iostream> #include<algorithm> #include<cstring> #include<map> using namespace std; int main() { int n,i; cin>>n; map<string,int> mp; map<string,int> mpp; for(i=0;i<n;i++) { char str[12]; scanf("%s",str); mpp[str]++; sort(str,str+strlen(str)); mp[str]++; } int q; cin>>q; while(q--) { char a[12]; scanf("%s",a); int flag=0; if(mpp.find(a)!=mpp.end()) flag=-1; sort(a,a+strlen(a)); if(mp.find(a)!=mp.end()) cout<<mp[a]+flag<<endl; else cout<<"0"<<endl; } }