OLAP Vision Interview Question
InternsCountry: Canada
Interview Type: In-Person
public static void main(String[] args){
calc("BAC");
}
public static void calc(String str){
int n = str.length()-1;
char[] carr = str.toCharArray();
int sum = carr[n] - 'A' +1;
n--;
int i = 1;
while(n >= 0){
sum += (carr[n] - 'A' + 1)*(int)Math.pow(26, i);
n--;
i++;
}
System.out.println(sum);
}
class BaseAlphabet {
final List ALPHABET = 'A'..'Z'
final Map MAP = ALPHABET.withIndex(1).collectEntries { k, v -> [(k): v] }
int getBase10(String s) {
s.toUpperCase().findAll { it }
.collect { MAP[it] }
.inject(0) { acc, val -> acc * 26 + val}
}
}
Map tests = [
'A': 1,
'B': 2,
'Z': 26,
'AA': 27,
'AB': 28,
'AZ': 52,
'BA': 53,
'CC': 81,
'cafe': 53565,
]
def ba = new BaseAlphabet()
tests.collect { k, v ->
def actual = ba.getBase10(k)
println "getBase10(${k}) = ${actual} \t(${actual == v})"
actual == v
}.any { !it }
getBase10(A) = 1 (true)
getBase10(B) = 2 (true)
getBase10(Z) = 26 (true)
getBase10(AA) = 27 (true)
getBase10(AB) = 28 (true)
getBase10(AZ) = 52 (true)
getBase10(BA) = 53 (true)
getBase10(CC) = 81 (true)
getBase10(cafe) = 53565 (true)
<?php
$input = 'AAAA';
$inputArray = str_split($input);
$length = count($inputArray);
$result = 0;
foreach ($inputArray as $key => $val) {
$pow = $length - ($key + 1);
$result += pow(26, $pow) * getNumber($val);
}
echo "The result is " . $result;
function getNumber($char) {
return ord($char) - 64;
}
<?php
$input = 'AAAA';
$inputArray = str_split($input);
$length = count($inputArray);
$result = 0;
foreach ($inputArray as $key => $val) {
$pow = $length - ($key + 1);
$result += pow(26, $pow) * getNumber($val);
}
echo "The result is " . $result;
function getNumber($char) {
return ord($char) - 64;
}
<?php
$input = 'AAAA';
$inputArray = str_split($input);
$length = count($inputArray);
$result = 0;
foreach ($inputArray as $key => $val) {
$pow = $length - ($key + 1);
$result += pow(26, $pow) * getNumber($val);
}
echo "The result is " . $result;
function getNumber($char) {
return ord($char) - 64;
}
Output:
- ProTechMulti October 21, 2017String = A , Value = 1
String = AA , Value = 27
String = AZ , Value = 52
String = BA , Value = 53
String = BZ , Value = 78
String = CA , Value = 79
String = AAA , Value = 703
String = AAZ , Value = 728
String = ABA , Value = 729
String = ABZ , Value = 754