【c++】拼音转数字

第一题:拼音转数字
输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
描述 : 拼音 yi er san si wu liu qi ba jiu
阿拉伯数字 1 2 3 4 5 6 7 8 9
输入字符只包含小写字母,所有字符都可以正好匹配
运行时间限制:无限制
内存限制: 无限制
输入: 一行字符串,长度小于1000
输出: 一行字符(数字)串
样例输入: yiersansi
样例输出: 1234

程序代码:

#include<iostream>
#include<cstdio>
#define MAX 1000;
using namespace std;
void print(char *str,int length);
int main()
{
    char str[1000];
    int i=0;
    char c;
    int length=0;
    while((str[i]=getchar())!='\n')
    {
        i++;
    }
    print(str,i);//i即为字符数组长度 
    return 0;
}
void print(char *str,int length)
{
    int i=0;
    for(i=0;i<length-1;)
    {
        if(str[i]=='y')
        {putchar('1');i+=2;}
        else if(str[i]=='e')
        {putchar('2');i+=2;}
        else if(str[i]=='s')
        {
            if(str[i+1]=='a')
            {putchar('3');i+=3;}
            else
            {putchar('4');i+=2;}
        }
        else if(str[i]=='w')
        {putchar('5');i+=2;}
        else if(str[i]=='l')
        {putchar('6');i+=3;}
        else if(str[i]=='q')
        {putchar('7');i+=2;}
        else if(str[i]=='b')
        {putchar('8');i+=2;}
        else if(str[i]=='j')
        {putchar('9');i+=3;}
        else 
        i++;

    }
}

运行结果:

参考资料:2015届华为校园招聘机试题

全部评论

相关推荐

点赞 评论 收藏
分享
03-26 13:04
已编辑
电子科技大学 算法工程师
xiaowl:你这个简历“条目上”都比较有深度性,但是实际上面试官又没法很好的评估你是怎么达到很多看上去很厉害的结果的。要避免一些看上去很厉害的包装,比如高效的内存复用策略的表达,如果仅是简单的一些内存共享机制,而且面试上也没有深挖的空间,就不要这样表达。比如,工程化模式本质上可能就是定义了一些abstract class,那也就没特别多值得讲的内容。建议简历上应该侧重那些你花了大量时间和精力解决、研究的问题,不要过分追求“丰富”,而是关注在技术深入度、问题解决能力的表现上。
没有实习经历,还有机会进...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务