首页 > 代码库 > 华为上机测试题(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)