周赛E-诺基亚(easy version)

诺基亚(easy version)
时间限制:C/C++ 1000MS,其他语言 2000MS
内存限制:C/C++ 256MB,其他语言 512MB

描述

 

今天小c学长买盲盒中了一个诺基亚,于是他对着这诺基亚研究了起来,他突发奇想想到了一种玩法。我们都知道诺基亚的一个按键可以按出多个字母,于是小c学长规定一个按键上的第几个字母就需要按几次那个数字才能出现(例如2上的字母有a,b,c,我们要a就要按1次2,b要按2次2,c要按3次2)。
现在小c学长给你一个字符串(全部由小写字母构成),问这个字符串是怎么被按出来的。诺基亚

 

输入描述

 

一个整数t,代表有t组样例
每组样例第一行一个n,代表字符串长度
第二行n个字符,代表小c给出的字符串
(保证所有的n加起来不超过1e5)

 

输出描述

 

每组样例输出一行由数字构成的字符串,表示按键方法

 

用例输入 1 

2
3
abc
3
aaa

用例输出 1 

222222
222
无脑直接过
python直接打表,放弃思考类型:
复制代码
ls = {"a": 2, "b": 22, "c": 222, "d": 3, "e": 33, "f": 333, "g": 4, "h": 44, "i": 444, "j": 5, "k": 55, "l": 555,
      "m": 6, "n": 66, "o": 666, "p": 7, "q": 77, "r": 777, "s": 7777, "t": 8, "u": 88, "v": 888, "w": 9, "x": 99,
      "y": 999, "z": 9999}
n=int(input())
for i in range(n):
      m=int(input())
      lis=input()
      for j in range(m):
            print(str(ls[lis[j]]),end='')
      print()
复制代码

C++代码:

复制代码
#include<bits/stdc++.h>
using namespace std;


int main(){
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        string str;
        cin>>str;
        int  aa[30]={2,22,222,3,33,333,4,44,444,5,55,555,6,66,666,7,77,777,7777,8,88,888,9,99,999,9999};
        for(int i=0;i<str.length();i++)
            cout<<aa[str[i]-'a'];
        cout<<endl;
    }
    return 0;
}
复制代码

 

主要还是为了下一个hard version做铺垫。。。。。。。东软学子加油吧

posted @   JerryTang菜菜  阅读(59)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示