输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
描述: 拼音 yi er san si wu liu qi ba jiu
阿拉伯数字 1 2 3 4 5 6 7 8 9
输入字符只包含小写字母,所有字符都可以正好匹配
运行时间限制:无限制
内存限制: 无限制
输入: 一行字符串,长度小于1000
输出: 一行字符(数字)串
样例输入: yiersansi
样例输出: 1234
解法一(C++)
#include<iostream>
using namespace std;
void convert(char *str)
{
int i;
int length;
length = strlen(str);
for(i = 0 ; i < length ; )
{
switch(str[i])
{
case 'y':
cout<<"1";
i += 2;
break;
case 'e':
cout<<"2";
i += 2;
break;
case 's':
if(str[i + 1] == 'a')
{
cout<<"3";
i += 3;
}
else
{
cout<<"4";
i += 2;
}
break;
case 'w':
cout<<"5";
i += 2;
break;
case 'l':
cout<<"6";
i += 3;
break;
case 'q':
cout<<"7";
i += 2;
break;
case 'b':
cout<<"8";
i += 2;
break;
case 'j':
cout<<"9";
i += 3;
break;
}
}
printf("\n");
}
int main()
{
char str[255];
while(cin>>str)
{
convert(str);
}
return 0;
}
已经运行通过,这里思路就是根据yi er san si wu liu qi ba jiu 首字母的不同来判断,其中要注意san 和si首字母相同,所以要判断一下。