Microsoft Interview Question
Software Engineer / DevelopersYour version is in C#? Here is my C++ one,
#include <string>
#include <cctype>
#include <stdexcept>
using namespace std;
int colVal ( string letters ) {
int result = 0;
int base_powed = 1;
const int base = 26;
if ( letters.size() == 0 )
throw invalid_argument( "empty letter string" );
for ( int i = letters.size() - 1; i >= 0; --i ) {
char letter = letters[i];
if ( isalpha(letter) ) {
letter = toUpper(letter);
// only for ASCII encoding
result += ( letter - 'A' + 1 ) * base_powed;
base_powed *= base;
} else
throw invalid_argument ( "Non-letters found in string" );
}
return result;
}
public static int toExcel(String letters) {
- ybbet September 21, 2008int value = 0;
for(int i = 0; i < letters.length(); i++) {
int index = letters.length() - i - 1;
value += (letters.charAt(index)-64)*Math.pow(26, i);
}
return value;
}