LeetCode Problem

How to Solve Substring XOR Queries

In the Substring XOR Queries problem, given a binary string and a set of queries, you need to find the shortest substring whose decimal value XORed with a given integer matches another integer. By efficiently scanning the string and using hash lookups, you can solve the problem for large inputs with quick response times.

GhostInterview Help

Need help with Substring XOR Queries without spending extra time grinding it?

GhostInterview can read Substring XOR Queries from a screenshot, generate the answer path, explain the complexity, and support solver-first interview workflows when you need direct help fast.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.

Problem #2564Array scanning plus hash lookupReviewed 2026-03-08
Difficulty
Medium
Primary pattern
Array scanning plus hash lookup
Answer-first problem summary
Step-by-step approach and complexity
GhostInterview solver workflow

In the Substring XOR Queries problem, given a binary string and a set of queries, you need to find the shortest substring whose decimal value XORed with a given integer matches another integer. By efficiently scanning the string and using hash lookups, you can solve the problem for large inputs with quick response times.

Problem Statement

You are given a binary string s, and a 2D integer array queries where queries[i] = [firsti, secondi]. For the ith query, you need to find the shortest substring of s whose decimal value, val, satisfies the equation val ^ firsti = secondi. In other words, the decimal value of a substring XORed with firsti should result in secondi.

Your task is to return the 0-indexed endpoints of the substring [lefti, righti] for each query, or [-1, -1] if no valid substring exists. If there are multiple answers, choose the one with the smallest lefti. The substring lengths should not exceed 30 characters, as longer ones are unnecessary.

Examples

Example 1

Input: s = "101101", queries = [[0,5],[1,2]]

Output: [[0,2],[2,3]]

For the first query the substring in range [0,2] is "101" which has a decimal value of 5, and 5 ^ 0 = 5, hence the answer to the first query is [0,2]. In the second query, the substring in range [2,3] is "11", and has a decimal value of 3, and 3 ^ 1 = 2. So, [2,3] is returned for the second query.

Example 2

Input: s = "0101", queries = [[12,8]]

Output: [[-1,-1]]

In this example there is no substring that answers the query, hence [-1,-1] is returned.

Example 3

Input: s = "1", queries = [[4,5]]

Output: [[0,0]]

For this example, the substring in range [0,0] has a decimal value of 1, and 1 ^ 4 = 5. So, the answer is [0,0].

Constraints

  • 1 <= s.length <= 104
  • s[i] is either '0' or '1'.
  • 1 <= queries.length <= 105
  • 0 <= firsti, secondi <= 109

Solution Approach

Efficient Array Scanning with XOR Property

To efficiently solve the problem, scan the string to evaluate substrings while maintaining a hash map of XOR results. For each query, try to match the required XOR property by using the map to check possible substrings. This helps avoid redundant calculations and reduces the problem size.

Optimize Query Handling with Hash Map

By storing previously seen XOR values and their corresponding indices, the algorithm can quickly identify the left endpoint of the valid substring when checking the XOR condition. This approach drastically reduces the time complexity of handling large query sets.

Limit Substring Length to 30 Bits

Given that the problem specifies substring lengths up to 30 bits, avoid unnecessary checks for longer substrings. This allows focusing only on the relevant part of the string, keeping computations efficient and manageable even for large strings.

Complexity Analysis

MetricValue
TimeDepends on the final approach
SpaceDepends on the final approach

The time complexity of this solution depends on the final approach but is generally reduced by leveraging efficient scanning and hash lookups. The space complexity is impacted by the need to store previously encountered XOR values, especially when dealing with multiple queries and larger strings.

What Interviewers Usually Probe

  • The candidate should demonstrate a clear understanding of bitwise operations and efficient query handling.
  • An efficient solution will leverage hashing techniques to optimize query resolution, avoiding brute force checks for each substring.
  • Candidates should be able to explain why limiting the substring length to 30 bits is crucial for optimal performance.

Common Pitfalls or Variants

Common pitfalls

  • Failing to limit the substring length to 30 bits, leading to unnecessary computations and performance issues.
  • Overcomplicating the solution by not using a hash map to track XOR values and their indices.
  • Not handling edge cases where no valid substring exists, such as returning [-1, -1] appropriately.

Follow-up variants

  • Extend the problem to work with longer binary strings or different types of queries to increase complexity.
  • Adapt the problem to handle non-binary strings and XOR conditions with different operators.
  • Consider optimizing for a dynamic set of XOR conditions rather than static queries, introducing more complexity.

How GhostInterview Helps

  • GhostInterview helps by providing targeted problem-solving techniques that focus on array scanning and efficient hash lookups, reducing time complexity.
  • By emphasizing common pitfalls, GhostInterview prepares candidates to avoid inefficient solutions, such as brute-force substring evaluations.
  • GhostInterview walks candidates through the importance of substring length limitations and optimizing for large inputs, preparing them for interviews with performance-focused problems.

Topic Pages

FAQ

What is the primary pattern for solving Substring XOR Queries?

The problem relies on array scanning plus hash lookup to efficiently handle multiple queries and find the shortest valid substring.

How do you efficiently handle large numbers of queries in Substring XOR Queries?

By using a hash map to store previously encountered XOR values and their corresponding indices, you can efficiently resolve queries without redundant calculations.

Why is it important to limit substring length to 30 in Substring XOR Queries?

Limiting the substring length to 30 bits ensures that you only focus on relevant portions of the string, optimizing performance for large inputs.

How can I improve the space complexity of my solution to Substring XOR Queries?

Space complexity can be optimized by using a compact data structure like a hash map to store XOR results, avoiding the need to store unnecessary intermediate data.

What should I do if no valid substring is found in Substring XOR Queries?

Return [-1, -1] when no valid substring matches the required XOR condition, as specified in the problem statement.

GhostInterview Solver

Need direct help with Substring XOR Queries instead of spending more time grinding it?

Download GhostInterview when you want a LeetCode solver, not another long practice loop. Capture Substring XOR Queries from a screenshot, get the answer path and complexity, and use supported stealth workflows that stay outside captured layers.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.