15 Jun 2024C++ / Python / TypeScriptEasy

Valid Perfect Square

Collected C++, Python, TypeScript solutions for valid perfect square. Add a dedicated write-up later if you want deeper notes.

auto-generated entry for Valid Perfect Square. the solution files are available below.

solution files

  • C++ valid-perfect-square/synced-solution.cpp
  • Python valid-perfect-square/synced-solution.py
  • TypeScript valid-perfect-square/synced-solution.ts

Solution files

Pythonvalid-perfect-square/synced-solution.py
def isPerfectSquare(num):
    if num < class="syntax-number">1:
        return False

    left, right = class="syntax-number">1, num
    while left <= right:
        mid = (left + right) class=class="syntax-string">"syntax-comment">// class="syntax-number">2
        square = mid * mid

        if square == num:
            return True
        elif square < num:
            left = mid + class="syntax-number">1
        else:
            right = mid - class="syntax-number">1

    return False
C++valid-perfect-square/synced-solution.cpp
class Solution {
public:
    bool isPerfectSquare(int num) {
        if (num < class="syntax-number">1) return false;

        long left = class="syntax-number">1, right = num;
        while (left <= right) {
            long mid = (left + right) / class="syntax-number">2;
            long square = mid * mid;

            if (square == num) {
                return true;
            } else if (square < num) {
                left = mid + class="syntax-number">1;
            } else {
                right = mid - class="syntax-number">1;
            }
        }

        return false;
    }
};
TypeScriptvalid-perfect-square/synced-solution.ts
function isPerfectSquare(num: number): boolean {
    if (num < class="syntax-number">1) return false;

    let left = class="syntax-number">1, right = num;
    while (left <= right) {
        const mid = Math.floor((left + right) / class="syntax-number">2);
        const square = mid * mid;

        if (square === num) {
            return true;
        } else if (square < num) {
            left = mid + class="syntax-number">1;
        } else {
            right = mid - class="syntax-number">1;
        }
    }

    return false;
}