华为优招:电报中用点(.)表示1,用中划线(-)表示0,序列中间用#号分隔;
来源:互联网 发布:手机淘宝如何合并付款 编辑:程序博客网 时间:2024/04/28 23:46
字符 . 代表1,字符 - 代表 0。输入类型“–.#。#-.-”的字符串,字符#是分隔符,可能会有连续的多个#。把形如“–.”的无符号二进制转换成十进制数字后,有张图表,根据这张图表上的映射关系,输出相应的英文字符(编程的时候要苦逼的把这张表手工输入到map里有没有。。。)。如果输入只是一连串的#,则输出一个空字符串,如果转换后的整数超出了图
表里的0-51得范围,则输出“ERROR”
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String input = sc.nextLine();String result= trans(input);System.out.println(result);}sc.close();}private static String trans(String input) {if(input ==null || input.length()==0)return "ERROR";char[] charArray = input.toCharArray();int count=0;for (int i = 0; i < charArray.length; i++) {if(charArray[i]=='#')count++;if(charArray[i]!='#' && charArray[i]!='.'&&charArray[i]!='-')return "ERROR";}String nothing ="";if(count == charArray.length)return nothing;StringBuilder sb = new StringBuilder();String[] split = input.split("#");for (int i = 0; i < split.length; i++) {if (split[i].equals("")||split[i].equals(" ")) {continue;}else{String back= binarytrans(split[i]);if(back.equals("ERROR"))return back;sb.append(back);}}return sb.toString();}private static String binarytrans(String str) {String[] myDictionary =new String[]{"F","G","R","S","T","L","M","N","O","P","Q","W","X","Y","Z","U","A","G","H","I","J","K","B","C","D","E","l","m","n","o","p","i","j","k","f","g","h","a","b","c","d","e","q","r","w","x","y","z","s","t","u","v"};StringBuilder sb = new StringBuilder();char[] cs = str.toCharArray();for (int i = 0; i < cs.length; i++) {if(cs[i]=='.'){sb.append("1");}else if (cs[i]=='-') {sb.append("0");}}int num=Integer.valueOf(sb.toString(),2);if(num<0 || num>51)return "ERROR";if(num>=0 && num<=51) return myDictionary[num];return "ERROR";}}
表里的0-51得范围,则输出“ERROR”
阅读全文
0 0
- 华为优招:电报中用点(.)表示1,用中划线(-)表示0,序列中间用#号分隔;
- 华为(3)表示数字
- 华为OJ(表示数字)
- 又学了一招——JAVA中三个点(...)的运算符,表示可变参数列表
- word中表示点
- 用户名处理PHP函数,保留两边,中间用星号表示
- 基于LLVM 中间表示(IR)分析实例
- Java中用字节数组表示整数和用整数表示字节数组
- gcc编译器----中间表示
- SICP 习题 (2.2) 解题总结:用复合数据表示点和线段
- java实现输入一个整数,输出该数二进制表示中1的个数(其中负数用补码表示)--《剑指offer》
- ASP.NET/VB.NET中凌晨0点的表示
- js解析不等式(用区间表示)
- (21):用函数对象表示策略
- 文本内容溢出用省略号(...)表示
- 在Excel2003中,用A表示第1列,B表示第2列。。。Z表示第26列,AA表示第27列,AB表示第28列。。。以此类推。请写出一个函数,输入用字母表示的列号编码,输出它是第几列
- 在Excel2003中,用A表示第1列,B表示第2列......Z表示第26列,AA表示第27列,AB表示第28列......以此类推。请写出一个函数,输入用字母表示的列号编码,输出它是第几列。
- 【华为OJ】表示数字
- 基于Lasagne实现限制玻尔兹曼机(RBM)
- strcpy函数、memcpy函数、strncpy函数的实现
- 项目兼容Kotlin踩过的坑
- 编写一个程序,输入n,求n!(用递归的方式实现)
- Oracle的多表查询
- 华为优招:电报中用点(.)表示1,用中划线(-)表示0,序列中间用#号分隔;
- YeaJur.Mapper时间格式问题
- 组合数取模
- Failed to start component [StandardEngine.......
- android sensor 框架分析---sensor 总结
- c++中string中的每一位表达都不能超过256种
- RePlugun趟坑记(1)
- java中修饰符的作用范围和this关键字
- [刷题]算法竞赛入门经典(第2版) 6-11/UVa10410 6-13/UVa215