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;
}