给你一个 二进制字符串 s 和一个整数数组 queries ,其中 queries[i] = [firsti, secondi] 。 对于第 i 个查询,找到 s 的 最短子字符串 ,它对应的 十进制值 val 与 firsti 按位异或 得到 secondi ,换言之,val ^ firsti == secondi 。 第 i 个查询的答案是子字符串 [lefti, righti] 的两个端点(下标从 0 开始),如果不存在这样的子字符串,则答案为 [-1, -1] 。如果有多个答案,请你选择 lefti 最小的一个。 请你返回一个数组 ans ,其中 ans[i] = [lefti, righti] 是第 i 个查询的答案。 子字符串 是一个字符串中一段连续非空的字符序列。
时间: 2023-03-08 12:15:36 浏览: 41
答案:对于给定的二进制字符串s和整数数组queries,您需要返回一个数组ans,其中ans[i] = [lefti, righti]是第i个查询的答案。您需要找到s的最短子字符串,它的十进制值val与firsti按位异或得到secondi,即val ^ firsti == secondi。如果不存在这样的子字符串,则答案为[-1, -1],如果有多个答案,请选择lefti最小的一个。
相关问题
python如何将一个二进制字符串转化为十进制整数
你可以使用内置函数`int()`来将一个二进制字符串转换为十进制整数。在转换时,需要将二进制字符串作为第一个参数传递给`int()`函数,并指定第二个参数`2`,表示输入的字符串是二进制的。下面是一个示例:
```python
binary_string = "110001"
decimal_number = int(binary_string, 2)
print(decimal_number)
```
输出结果将是:
```
49
```
在上面的示例中,二进制字符串"110001"被转换为十进制整数49。
输入一个二进制字符串,转换成十进制整数的Java程序
好的,以下是一个将二进制字符串转换成十进制整数的Java程序:
```java
import java.util.Scanner;
public class BinaryToDecimal {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个二进制字符串:");
String binaryStr = scanner.nextLine();
int decimal = Integer.parseInt(binaryStr, 2);
System.out.println("转换成十进制整数为:" + decimal);
}
}
```
程序中使用了Java内置的parseInt方法,第一个参数为要转换的字符串,第二个参数为要转换的字符串的进制,这里我们给定的是2,表示二进制。然后将转换后的十进制整数打印输出即可。