码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode day4

时间:2015-11-12 23:27:41      阅读:317      评论:0      收藏:0      [点我收藏+]

标签:

【171】Excel Sheet Column Number

Given a column title as appear in an Excel sheet, return its corresponding column number.

For example:

    A -> 1
    B -> 2
    C -> 3
    ...
    Z -> 26
    AA -> 27
    AB -> 28 

思路: 实际上是做一个26进制的数字转换表,用一个数在for循环内纪录字符的位数,从而乘以基数26

public class Solution {
    public int titleToNumber(String s) {
      if(s==null||s.length()==0){
          return 0;
      }
      
      int base = 0;
      for(int i = 0; i<s.length();i++){
          base = base*26 + s.charAt(i)-‘A‘+1;//当有两位数的时候,base就是个位数*26
      }
      return base;
    }
}

 

逆问题:Excel Sheet Column Title【168】

Given a positive integer, return its corresponding column title as appear in an Excel sheet.

For example:

    1 -> A
    2 -> B
    3 -> C
    ...
    26 -> Z
    27 -> AA
    28 -> AB

思路:给n,用while循环,取出n的每一位,然后对应变换

public class Solution {
    public String convertToTitle(int n) {
        StringBuilder result = new StringBuilder();

        while(n>0){
            n--;
            result.insert(0, (char)(‘A‘ + n % 26));
            n /= 26;
        }

        return result.toString();
    }
}

 

 

 

 

 



leetcode day4

标签:

原文地址:http://www.cnblogs.com/lucky-star-star/p/4960568.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!