華為上機測試題(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 }


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM