首页 > 代码库 > 华为上机测试题(Excel表格纵列字母数字转换-java)
华为上机测试题(Excel表格纵列字母数字转换-java)
PS:这是我刚做的一道题,题目不难,满分60,得分40,大家看看哪里有问题,欢迎提意见,感谢!
/*
* 题目:Excel表格纵列字母数字转换
* 描述: 在Excel中列的编号为A-Z,AA-AZ,BA-BZ.....CZB.....,请实现一个函数要求满足以下功能,将编号进行修改,
* 如A-Z为1-26,然后翻转为两位,AA为27,AB为28。。。。。ZZ为702,然后翻转为3位,AAA=703,AAB=704。。。
输入的字符串最长只有4。
题目类别: 字符串
难度: 初级
分数: 60
运行时间限制: 无限制
内存限制: 无限制
阶段: 应聘考试 输入: 1.输入为字符串,其中所有字母均为大写(不作为异常输入校验点),字母个数不超过4个(代码要校验)。
输出: 输出运算结果
如:输入AA对应的结果是27 样例输入: AB 样例输出: 28
*/
1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 7 int num = 0; 8 int len = 0; 9 10 Scanner s = new Scanner(System.in);11 String str = s.nextLine();12 s.close();13 14 len = str.length();15 if(len <= 0 || len >4)16 {17 return;18 }19 for(int i = 0; i < len; i++)20 {21 char ch = str.charAt(i);22 if(ch < ‘A‘ || ch > ‘Z‘)23 {24 return;25 }26 }27 28 num = strToNum(str, len);29 30 System.out.println(num);31 32 }33 34 private static int strToNum(String str, Integer len) {35 36 int num = 0;37 int result = 0;38 39 for(int i = 0; i < len; i++)40 {41 char ch = str.charAt(len - i - 1);42 num = (int)(ch - ‘A‘ + 1) ;43 num *= Math.pow(26, i);44 result += num;45 }46 return result;47 }48 49 }
华为上机测试题(Excel表格纵列字母数字转换-java)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。