c_cpp 乐购键盘
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 乐购键盘相关的知识,希望对你有一定的参考价值。
#include<bits/stdc++.h>
using namespace std;
// #Placement #Strings
/*
1 represents 'Space'
2- ABC
3- DEF
4- GHI
5- JKL
6- MNO
7- PQRS
8- TUV
9- WXYZ
Testcase :
1
ABC
DEF
GHI
JKL
MNO
PQRS
TUV
WXYZ
HEY
Output:
16
Explaination:
HEY - 4433999
key presses can be used for words
1.GGDDWWW
2.HDDWWW
3.GGEWWW
4.HEWWWW
5.GGDDWX
6.GGDDXW
7.GGDDY
8.HDDWX
9.HDDXW
10.HDDY
11.GGEWX
12.GGEXW
13.GGEY
14.HEWX
15.HEXW
16.HEY
*/
string decode(vector<string> keys,string word);
long solve(string x);
long nwayspairs(int n);
int main(){
int t;
cin>>t;
while(t--){
vector<string> keys(8);
for(int i=0;i<8;i++){
cin>>keys[i];
}
string word;
cin>>word;
cout<<solve(decode(keys,word))<<endl;
}
return 0;
}
string decode(vector<string> keys,string word){
string dec;
map<char,pair<char,int> > m;
for(int j=0;j<keys.size();j++){
for(int k=0;keys[j].size();k++){
m[keys[j][k]].first=(j+2)+'0';
m[keys[j][k]].second=(k+1);
}
}
for(int i=0;i<word.size();i++){
int pos=m[word[i]].second;
while(pos--){
dec.push_back(m[word[i]].first);
}
}
return dec;
}
long solve(string x){
map<int,int> count;
for(int i=0;i<x.size();i++){
count[x[i]-'0']++;
}
long ans=1;
for(auto it=count.begin();it!=count.end();it++){
if(it->second>1){
ans*=nwayspairs(it->second);
}
}
return ans%1000000007;
}
long nwayspairs(int n){
if(n==1){
return 1;
}else if(n==2){
return 2;
}else if(n==3){
return 4;
}else{
return 8;
}
}
以上是关于c_cpp 乐购键盘的主要内容,如果未能解决你的问题,请参考以下文章
电商新发展优颂乐购迎风起航
c_cpp 键盘记录
c_cpp 键盘打字 - GeeksforGeeks
c_cpp 自定义普朗克键盘映射
华盛乐购系统开发APP
优颂乐购——电子商务未来的发展趋势