蓝桥杯-9-3摩尔斯电码(java)
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯-9-3摩尔斯电码(java)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
算法提高 9-3摩爾斯電碼 時間限制:1.0s 內存限制:256.0MB問題描述摩爾斯電碼破譯。類似于喬林教材第213頁的例6.5,要求輸入摩爾斯碼,返回英文。請不要使用"zylib.h",只能使用標準庫函數。用' * '表示' . ',中間空格用' | '表示,只轉化字符表。摩爾斯碼定義見:http://baike.baidu.com/view/84585.htm?fromId=253988。提示清橙進行評測時,輸入是以EOF結尾的,而不是換行符。(EOF不是一個字符,“以EOF結尾”是一種通俗但不嚴謹的說法。)因此可以通過以下方式之一獲取輸入:1. 一次讀入整行字符串,再進行后續解析。2. 使用getchar或scanf一次讀入一個字符,通過它們的返回值判斷輸入結束。樣例輸出
import java.util.Scanner; public class Main { public char Getchar(String A){ //這里if多了,想的話自己改改char result = 0; if(A.equals("*-")) result = 'a'; else if(A.equals("-***")) result = 'b'; else if(A.equals("-*-*")) result = 'c'; else if(A.equals("-**")) result = 'd'; else if(A.equals("*")) result = 'e'; else if(A.equals("**-*")) result = 'f'; else if(A.equals("--*")) result = 'g'; else if(A.equals("****")) result = 'h'; else if(A.equals("**")) result = 'i'; else if(A.equals("*---")) result = 'j'; else if(A.equals("-*-")) result = 'k'; else if(A.equals("*-**")) result = 'l'; else if(A.equals("--")) result = 'm'; else if(A.equals("-*")) result = 'n'; else if(A.equals("---")) result = 'o'; else if(A.equals("*--*")) result = 'p'; else if(A.equals("--*-")) result = 'q'; else if(A.equals("*-*")) result = 'r'; else if(A.equals("***")) result = 's'; else if(A.equals("-")) result = 't'; else if(A.equals("**-")) result = 'u'; else if(A.equals("***-")) result = 'v'; else if(A.equals("*--")) result = 'w'; else if(A.equals("-**-")) result = 'x'; else if(A.equals("-*--")) result = 'y'; else if(A.equals("--**")) result = 'z'; return result; } public void Getsentence(String ch){ String str1; StringBuilder[] str = new StringBuilder[1000]; int j=0,count = 0; str[j] = new StringBuilder(); for(int i=0;i<ch.length();i++){ if(ch.charAt(i)=='|'){ j++; str[j] = new StringBuilder(); //看懂這個就可以count=j; } else{ String str2 = String.valueOf(ch.charAt(i)); //將char轉換為string類 str[j].append(str2); } } for(int k=0;k<=count;k++){ str1 = str[k].toString(); //將Stringbuilder類轉換為string類 char temp = Getchar(str1); System.out.print(temp); } } public static void main(String[] args) { Main test = new Main(); Scanner sc = new Scanner(System.in); String ch = sc.nextLine(); test.Getsentence(ch); } }
總結
以上是生活随笔為你收集整理的蓝桥杯-9-3摩尔斯电码(java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯-9-2 文本加密
- 下一篇: 蓝桥杯-11-1实现strcmp函数(j