本人解法 ~略麻烦
class Solution { public String convertToTitle(int n) { int flag = 0; String str = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z "; String[] arr = str.split(" "); String str2 = ""; while(n!=0) { n--;//这个是最亮的一点 int temp=n%26; str2=arr[temp]+str2; n=n/26; } return str2; } }
其他的解法 有点简单~ 不用采用AZ保存在一个数组中
public class Solution { public String convertToTitle(int n) { String res = ""; while(n != 0) { char ch = (char)((n - 1) % 26 + 65); n = (n - 1) / 26; res = ch + res; } return res; } }
class Solution { public String convertToTitle(int n) { StringBuilder sb = new StringBuilder();//用一个可变的字符串 节省一点时间 while(n>0){ if(n%26==0){ sb.append('Z'); n -= 26; }else { sb.append((char) ('A' + (n % 26) - 1)); } n /= 26; } return sb.reverse().toString(); } }
最牛逼的一行解决
return n == 0 ? "" : convertToTitle(--n / 26) + (char)('A' + (n % 26));