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

优颂乐购——电子商务未来的发展趋势