Java實現 運用HashMap的映射快速編寫 摩爾斯電碼
算法提高 9-3摩爾斯電碼
時間限制:1.0s 內存限制:256.0MB
提交此題
問題描述
摩爾斯電碼破譯。類似於喬林教材第213頁的例6.5,要求輸入摩爾斯碼,返回英文。請不要使用"zylib.h",只能使用標準庫函數。用’ * ‘表示’ . ‘,中間空格用’ | '表示,只轉化字符表。
輸入示例:
輸出:
hello
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next(); // 輸入的字符串
String[] b = str.split("\\|"); // 以|爲分隔符 生成字符串數組b
HashMap<String, String> map = new HashMap<>(); //創建一個hashmap存放摩爾斯密碼
map.put("*-", "a");
map.put("-***","b");
map.put("-*-*","c");
map.put("-**","d");
map.put("*","e");
map.put("**-*","f");
map.put("--*","g");
map.put("****","h");
map.put("**","i");
map.put("*---","j");
map.put("-*-","k");
map.put("*-**","l");
map.put("--","m");
map.put("-*","n");
map.put("---","o");
map.put("*--*","p");
map.put("--*-","q");
map.put("*-*","r");
map.put("***","s");
map.put("-","t");
map.put("**-","u");
map.put("***-","v");
map.put("*--","w");
map.put("-**-","x");
map.put("-*--","y");
map.put("--**","z");
// b數組與之key一一匹配輸出值
for (int i = 0; i < b.length; i++) {
System.out.print(map.get(b[i])+"");
}
}
}