## Question

Given a non-negative integer `x`

, compute and return *the square root of* `x`

.

Since the return type is an integer, the decimal digits are **truncated**, and only **the integer part** of the result is returned.

**Note: **You are not allowed to use any built-in exponent function or operator, such as `pow(x, 0.5)`

or `x ** 0.5`

.

**Example 1:**

Input:x = 4Output:2

**Example 2:**

Input:x = 8Output:2Explanation:The square root of 8 is 2.82842..., and since the decimal part is truncated, 2 is returned.

**Constraints:**

`0 <= x <= 2`

^{31}- 1

## Python Solution

class Solution: def mySqrt(self, x: int) -> int: left, right = 0, x res = 0 while left <= right: mid = (right + left) // 2 if mid * mid <= x: res = mid left = mid + 1 else: right = mid - 1 return res