首页 > 代码库 > A题之拼音转数字
A题之拼音转数字
输入是一个仅仅包括拼音的字符串,请输出相应的数字序列。转换关系例如以下:
描写叙述: 拼音 yi er san si wu liu qi ba jiu
阿拉伯数字 1 2 3 4 5 6 7 8 9
输入字符仅仅包括小写字母,全部字符都能够正好匹配
执行时间限制:无限制
内存限制: 无限制
输入: 一行字符串。长度小于1000
输出: 一行字符(数字)串
例子输入: yiersansi
例子输出: 1234
思路:
1)<拼音。数字>作为键值对,保存在hashmap中
2)字符串循环,从hashmap中取出响应的数字
Java解法:
import java.util.HashMap;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);HashMap<String, Integer> hashMap=new HashMap<>();hashMap.put("yi", 1);hashMap.put("er", 2);hashMap.put("san", 3);hashMap.put("si", 4);hashMap.put("wu", 5);hashMap.put("liu", 6);hashMap.put("qi", 7);hashMap.put("ba", 8);hashMap.put("jiu", 9);
while(cin.hasNext()){
func(hashMap, cin.next());
break;
}
}
public static void func(HashMap<String, Integer> hashMap, String str)
{
int k1=0;int k2=2;//System.out.println(hashMap.get("111"));while(k2<=str.length()){
if (hashMap.get(str.subSequence(k1, k2))!=null){
System.out.print(hashMap.get(str.subSequence(k1, k2)));
}else {
k2++;
if (hashMap.get(str.subSequence(k1, k2))!=null)
{
System.out.print(hashMap.get(str.subSequence(k1, k2)));
}
}
k1=k2;
k2+=2;
}}
}
A题之拼音转数字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。