PracHub
QuestionsLearningGuidesInterview Prep

Quick Overview

Count distinct axis-aligned squares whose full sides are covered by horizontal and vertical integer-coordinate segments. Normalize and merge collinear coverage, avoid duplicate geometric squares, support overlapping segments and negative coordinates, and index interval coverage efficiently.

  • hard
  • Waymo
  • Coding & Algorithms
  • Software Engineer

Count Squares Formed by Segments

Company: Waymo

Role: Software Engineer

Category: Coding & Algorithms

Difficulty: hard

Interview Round: Technical Screen

# Count Squares Formed by Segments You are given axis-aligned line segments with integer coordinates. Each segment is represented by two endpoints. One input list contains only vertical segments and another contains only horizontal segments. Count the distinct axis-aligned squares whose four complete sides are covered by the supplied segments. A valid square is defined by `x1 < x2` and `y1 < y2` such that `x2 - x1 == y2 - y1`, both vertical sides cover the full range `[y1, y2]`, and both horizontal sides cover the full range `[x1, x2]`. Implement: ```python def count_squares( vertical: list[tuple[tuple[int, int], tuple[int, int]]], horizontal: list[tuple[tuple[int, int], tuple[int, int]]], ) -> int: ... ``` ## Constraints and Clarifications - Endpoint order is arbitrary; normalize every segment. - Zero-length segments do not form a side. - Collinear segments may overlap or touch. Their union can cover a square side, and the same geometric square is counted once regardless of how many source segments cover it. - Intersections at endpoints count. - Coordinates may be negative. - Do not assume the drawing is a complete grid. - Discuss a baseline approach and how you would index candidate counterpart segments to avoid blindly testing every set of four input segments. ## Hints - Normalize collinear coverage before counting to prevent duplicates. - A pair of parallel sides determines the only possible side length and the required positions of the other pair. - Consider indexing intervals by their fixed coordinate and supporting fast coverage queries on the varying coordinate.

Quick Answer: Count distinct axis-aligned squares whose full sides are covered by horizontal and vertical integer-coordinate segments. Normalize and merge collinear coverage, avoid duplicate geometric squares, support overlapping segments and negative coordinates, and index interval coverage efficiently.

Count distinct axis-aligned squares whose four full sides are covered by unions of the supplied vertical and horizontal segments.

Constraints

  • Segments are axis-aligned with integer coordinates
  • Endpoint order is arbitrary
  • Overlapping or touching segments may jointly cover a side

Examples

Input: {'vertical': [], 'horizontal': []}

Expected Output: 0

Explanation: No segments form no square.

Input: {'vertical': [((0, 0), (0, 1)), ((1, 0), (1, 1))], 'horizontal': [((0, 0), (1, 0)), ((0, 1), (1, 1))]}

Expected Output: 1

Explanation: Four unit sides form one square.

Hints

  1. Merge collinear coverage before counting.
  2. A pair of vertical coordinates fixes the side length and the required second horizontal level.
Last updated: Jul 15, 2026

Loading coding console...

PracHub

Master your tech interviews with 8,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.

Related Coding Questions

  • Build an Expression That Reaches a Target - Waymo (medium)
  • Compute Max Pooling Values and Coordinates - Waymo (medium)
  • Validate a Parent-Child Forest - Waymo (medium)
  • Find the Best Meeting Point on a Grid - Waymo (medium)
  • Filter Matching Subtrees from an N-Ary Tree - Waymo (medium)