Excel Sheet Column Number

leetcode 107

Posted by johnnwen on April 1, 2016

Excel Sheet Column Number

题意:

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

例如
A -> 1	
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28 
代码如下
class Solution {
public:
    int titleToNumber(string s) {
	    int sum = 0;  
    	for (int i = 0; i < s.size(); ++i) {  
        	//因为'A'是以1开头,因此要“+1”
        	int temp = s[i] - 'A' + 1;
        	sum = 26 * sum + temp;  
    	}  
    	return sum;  
    
	}
};
分析

题目大意就是处理26进制,逐个读入字符串中的每一个字符进行处理转换即可。

注意 :由于下标从1开始而不是从0开始,因此要加一操作

leetcodeyou另一道题目168. Excel Sheet Column Title和这道题目互逆,题意如下:

Excel Sheet Column Title

Given a non-zero 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 
代码如下
class Solution {
public:
	string convertToTitle(int n) {
    	string result = "";
    	while(n)
    	{
        	//由于下标从1开始而不是从0开始,因此要减一操作
        	int temp = n-1;
        	result = (char)(temp%26+'A') + result;
        	n = temp/26;
    	}
    	return result;
    
	}
};
分析

题目大意的本质上就是将一个10进制数转换为一个26进制的数。

注意 :由于下标从1开始而不是从0开始,因此要减一操作