2014年7月华为校招机试真题3
来源:互联网 发布:java list遍历 编辑:程序博客网 时间:2024/04/29 01:10
拼音转数字
输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
描述: 拼音 yi er san si wu liu qi ba jiu
阿拉伯数字 1 2 3 4 5 6 7 8 9
输入字符只包含小写字母,所有字符都可以正好匹配
运行时间限制:无限制
内存限制: 无限制
输入: 一行字符串,长度小于1000
输出: 一行字符(数字)串
样例输入: yiersansi
样例输出: 1234
#include<iostream>using namespace std;bool strtonum (const char *a , char *b){if (a == NULL || b == NULL){return false;}int i = 0;int j = 0;while(a[i] != '\0'){//yi er san si wu liu qi ba jiuswitch (a[i]){case 'y':if (a[i+1] != 'i'){return false;}i+=2;b[j++] = '1';break;case 'e':if (a[i+1] != 'r'){return false;}i+=2;b[j++] = '2'; break;case 's':if (a[i+1] == 'a'){if (a[i+2] != 'n'){return false;} i+=3;b[j++] = '3';break;}else {if (a[i+1] != 'i'){return false;}i+=2;b[j++] = '4';break;}case 'w':if (a[i+1] != 'u'){return false;}i+=2;b[j++] = '5';break;case 'l':if (a[i+1] != 'i'){return false;}else{if (a[i+2] != 'u'){return false;}i+=3;b[j++] ='6';break;}case 'q':if (a[i+1] != 'i'){return false;}i+=2;b[j++] = '7';break;case 'b':if (a[i+1] != 'a'){return false;}i+=2;b[j++] = '8';break;case 'j':if (a[i+1] != 'i'){return false;}else{if (a[i+2] != 'u'){return false;} i+=3; b[j++] = '9'; break;}default:return false;}}b[j] = '\0';return true;}int main(){while(1){cout << "一行字符串,长度小于1000:\n"; char a[1000];//strcpy(a,"eryiersansiwuliuqibajiusanbajiuqi");gets(a);if (a == NULL ){continue;}if (strlen(a) == 1000){cout << "请输入一行长度小于1000的字符串:\n";continue; }char b[256]=" ";if (strtonum(a,b)){cout <<"输入前的一行数字串:\n";int i = 0; while (a[i] != '\0'){cout << a[i];++i;}cout <<"\n转换后的一行数字串:\n";i = 0;while (b[i] != '\0'){cout << b[i];++i;}cout << endl; }else{cout <<" 请输出的字符串存在错误字符 " << endl;} }return 0;}
测试结果:不考虑输入是大写!
0 0
- 2014年7月华为校招机试真题3
- 2014年7月华为校招机试真题1
- 2014年7月华为校招机试真题2
- 2014年7月华为校招机试真题4
- [C/C++]2014年7月华为校招机试真题(一)
- [C/C++]2014年7月华为校招机试真题(二)
- [C/C++]2014年7月华为校招机试真题(一)
- [C/C++]2014年7月华为校招机试真题(一)
- 2014年7月华为校招机试第一题答案另解--Java版本
- 2013年9月华为上机题
- 2014 8月华为软件类上机笔试
- 2014 8月华为软件类上机笔试题目解答
- 2014校园招聘之一(8月华为机试题)
- 2013年9月华为机试题目
- 2013年9月华为机试题目
- 2005年11月华为在南邮的招聘笔试题
- 2005年11月华为在南邮的招聘笔试题
- 2013年5月华为实习生招聘之机试练习题
- linux内核之休眠
- Content Provider(内容提供器),Broadcast(广播), Service(服务)
- MySQL学习笔记-join语句类型
- java 图的拓扑排序(利用Vector存储)
- Swift简介
- 2014年7月华为校招机试真题3
- UDP通讯示例
- Android的混淆打包原理
- android广播broadcast详解
- Java_jdbc 基础笔记之八 数据库连接(写一个查询Student对象的方法)
- Servlet以及jsp异常的处理
- 网络通讯基础
- Struts2.x和Struts1.x的区别
- 什么是高可用HA(High Availability)“脑裂"