1. 程式人生 > >A題之拼音轉數字

A題之拼音轉數字

scan util length 響應 color sans pop -c 一行

輸入是一個僅僅包括拼音的字符串,請輸出相應的數字序列。轉換關系例如以下: 描寫敘述: 拼音 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題之拼音轉數字