拼音首字母翻譯,A題之拼音轉數字

 2023-10-08 阅读 241 评论 0

摘要:輸入是一個只包含拼音的字符串,請輸出對應的數字序列。轉換關系如下: 描述: 拼音 yi er san si wu liu qi ba jiu 阿拉伯數字 1 2 3 4 5 6 7 8 9 輸入字符只包含小寫字母,所有字符都可以正好匹配 運行時間限制:無限制 內存限制: 無
輸入是一個只包含拼音的字符串,請輸出對應的數字序列。轉換關系如下:
描述: 拼音 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;
}
}
}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/136677.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息