168.表列名称


本人解法 ~略麻烦

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));
全部评论

相关推荐

驼瑞驰_招募评论官版...:点击就挂,露头就秒
点赞 评论 收藏
分享
真没意想到
从明天开始狠狠卷JV...:我建议释放offer,然后这个offer流到我头上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务