A题之拼音转数字
Posted jzssuanfa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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题之拼音转数字的主要内容,如果未能解决你的问题,请参考以下文章