NC218885. 暗号I
描述
输入描述
第一行两个整数表示暗号个数,表示询问次数。第二行个字符串。接下来行,每行一个字符串,两个整数。用表示字符串的长度,保证。
输出描述
每行输出一个整数。
示例1
输入:
2 2 aa ab bb 1 2 ab 1 2
输出:
1 1
C++(clang++11) 解法, 执行用时: 385ms, 内存消耗: 5548K, 提交时间: 2021-03-21 15:43:20
#include<bits/stdc++.h> using namespace std; map<string,vector<int> >mp; string hx(string s){ string res=""; int visit[30]={0}; int y = 1; for(int i=0;i<s.size();i++){ int t = s[i] - 'a'; if(!visit[t]){ visit[t] = y++; } res += visit[t]+'a'-1; } return res; } int main(){ int n,q; cin>>n>>q; for(int i=1;i<=n;i++){ string s; cin>>s; mp[hx(s)].push_back(i); } while(q--){ string ss; int L,R; cin>>ss>>L>>R; vector<int> &w = mp[hx(ss)]; //** cout<<upper_bound(w.begin(),w.end(),R)-lower_bound(w.begin(),w.end(),L)<<endl; } }