All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g2501_2600.s2564_substring_xor_queries.readme.md Maven / Gradle / Ivy

There is a newer version: 1.30
Show newest version
2564\. Substring XOR Queries

Medium

You are given a **binary string** `s`, and a **2D** integer array `queries` where queries[i] = [firsti, secondi].

For the ith query, find the **shortest substring** of `s` whose **decimal value**, `val`, yields secondi when **bitwise XORed** with firsti. In other words, val ^ firsti == secondi.

The answer to the ith query is the endpoints (**0-indexed**) of the substring [lefti, righti] or `[-1, -1]` if no such substring exists. If there are multiple answers, choose the one with the **minimum** lefti.

_Return an array_ `ans` _where_ ans[i] = [lefti, righti] _is the answer to the_ ith _query._

A **substring** is a contiguous non-empty sequence of characters within a string.

**Example 1:**

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

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

**Explanation:** 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]]

**Explanation:** 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]]

**Explanation:** 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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy