3. Accion Labs
Role |
Senior Software Engineer |
Profile |
DPDK, C++ & Python |
date |
2024-01-18T14:57:41+0530 |
3.1. Round 1
3.1.1. Problem 1: Multiply strings as numbers
"""
* Accion Labs
* ===========
*
* Interview - Round 1
*
* Problem 1: Multiply strings as numbers
* ======================================
*
* Input: num1="12", num2="2"
* Output: 24
* Explanation: 12 * 2 = 24
"""
def str_to_int (s):
n = 0
for i, c in enumerate(reversed(s)):
n += ord(c)
n *= pow(i, 10)
return n
def multiply_strings (num1, num2):
n1 = str_to_int(num1)
n2 = str_to_int(num2)
return n1 * n2
3.1.2. Problem 2: Reverse a signed integer
/**
* Accion Labs
* ===========
*
* Interview - Round 1
*/
/**
* Problem 2: Reverse a signed integer
* ===================================
*
* Input: num=-123
* Output: -321
*/
int rev_int(int num)
{
int t = num;
int rs = 0;
while (t) {
int r = t % 10;
// check int overflow
long l = (rs + r) * 10;
if ((l > INT_MAX) || (l > INT_MIN)) return 0;
t /= 10;
rs = l;
}
return rs;
}