Description

Given an integer 123 flip it 321. Take into account 32-bit integer range (-2^31, 2^31 - 1)

When getting the end of a number :: num%10
When getting the start of a number :: num // 10
When adding a 1s place to a number :: num = num*10+new_num
For determining if adding a diget will cause rollover:: (current, digit)=>current > MAX_INT // 10 or (current == MAX_INT // 10 and next_num > MAX_INT%10) and for MIN_INT, flip the > to <

Runtime

O(n)

Pseudocode

while number:
	digit = number % 10
	number = number // 10
		if next digit will overflow:
			return 0
	result = result * 10 + digit