1930. 长度为 3 的不同回文子序列

题目 给你一个字符串 s ,返回 s 中 长度为 3 的不同回文子序列 的个数。 即便存在多种方法来构建相同的子序列,但相同的子序列只计数一次。 回文 是正着读和反着读一样的字符串。 子序列 是由原字符串删除其中部分字符(也可以不删除)且不改变剩余字符之间相对顺序形成的一个新字符串。 * 例如,"ace" 是 "abcde" 的一个子序列。 示例 1: 输入:s = "aabca" 输出:3 解释:长度为 3 的 3 个回文子序列分别是: * "aba" ("aabca" 的子序列) * "…

1513. 仅含 1 的子串数

题目 给你一个二进制字符串 s(仅由 '0' 和 '1' 组成的字符串)。 返回所有字符都为 1 的子字符串的数目。 由于答案可能很大,请你将它对 10^9 + 7 取模后返回。 示例 1: 输入:s = "0110111" 输出:9 解释:共有 9 个子字符串仅由 '1' 组成 "1" -> 5 次 "11" ->…

3228. 将 1 移动到末尾的最大操作次数

题目 给你一个 二进制字符串 s。 你可以对这个字符串执行 任意次 下述操作: * 选择字符串中的任一下标 i( i + 1 < s.length ),该下标满足 s[i] == '1' 且 s[i + 1] == '0'。 * 将字符 s[i] 向 右移 直到它到达字符串的末端或另一个 '1'。例如,对于 s = "010010",如果我们选择 i = 1,结果字符串将会是 s = "0**001*…

2654. 使数组所有元素变成 1 的最少操作次数

题目 给你一个下标从 0 开始的 正 整数数组 nums 。你可以对数组执行以下操作 任意 次: * 选择一个满足 0 <= i < n - 1 的下标 i ,将 nums[i] 或者 nums[i+1] 两者之一替换成它们的最大公约数。 请你返回使数组 nums 中所有元素都等于 1 的 最少 操作次数。如果无法让数组全部变成 1 ,请你返回 -1 。 两个正整数的最大公约数指的是能整除这两个数的最大正整数。 示例 1: 输入:nums = [2,6,3,4] 输出:4…

474. 一和零

题目 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。 示例 1: 输入:strs = ["10", "0001", "111001", "1", "0"…

3542. 将所有元素变为 0 的最少操作次数

题目 给你一个大小为 n 的 非负 整数数组 nums 。你的任务是对该数组执行若干次(可能为 0 次)操作,使得 所有 元素都变为 0。 在一次操作中,你可以选择一个子数组 [i, j](其中 0 <= i <= j < n),将该子数组中所有 最小的非负整数 的设为 0。 返回使整个数组变为 0 所需的最少操作次数。 一个 子数组 是数组中的一段连续元素。 示例 1: 输入: nums = [0,2] 输出: 1 解释: * 选择子数组 [1,1]…

1611. 使整数变为 0 的最少操作次数

题目 给你一个整数 n,你需要重复执行多次下述操作将其转换为 0 : * 翻转 n 的二进制表示中最右侧位(第 0 位)。 * 如果第 (i-1) 位为 1 且从第 (i-2) 位到第 0 位都为 0,则翻转 n 的二进制表示中的第 i 位。 返回将 n 转换为 0 的最小操作次数。 示例 1: 输入:n = 3 输出:2 解释:3 的二进制表示为 "11" "11" -> "…

2528. 最大化城市的最小电量

题目 给你一个下标从 0 开始长度为 n 的整数数组 stations ,其中 stations[i] 表示第 i 座城市的供电站数目。 每个供电站可以在一定 范围 内给所有城市提供电力。换句话说,如果给定的范围是 r ,在城市 i 处的供电站可以给所有满足 |i - j| <= r 且 0 <= i, j <= n - 1 的城市 j 供电。 * |x| 表示 x 的 绝对值 。比方说,|7 - 5| = 2 ,|3…