给你一个下标从 0 开始的字符串 s
,该字符串由用户输入。按键变更的定义是:使用与上次使用的按键不同的键。例如 s = "ab"
表示按键变更一次,而 s = "bBBb"
不存在按键变更。
返回用户输入过程中按键变更的次数。
注意:shift
或 caps lock
等修饰键不计入按键变更,也就是说,如果用户先输入字母 'a'
然后输入字母 'A'
,不算作按键变更。
示例 1:
输入:s = "aAbBcC" 输出:2 解释: 从 s[0] = 'a' 到 s[1] = 'A',不存在按键变更,因为不计入 caps lock 或 shift 。 从 s[1] = 'A' 到 s[2] = 'b',按键变更。 从 s[2] = 'b' 到 s[3] = 'B',不存在按键变更,因为不计入 caps lock 或 shift 。 从 s[3] = 'B' 到 s[4] = 'c',按键变更。 从 s[4] = 'c' 到 s[5] = 'C',不存在按键变更,因为不计入 caps lock 或 shift 。
class Solution {
public int countKeyChanges(String s) {
int ans = 0;
for (int i = 0; i < s.length() - 1; i++) {
int a = Math.abs(s.charAt(i) - s.charAt(i + 1));
if (a == 0 || a == 32)
continue;
else
ans++;
}
return ans;
}
}
给你一个 正整数 数组 nums
。
你需要从数组中选出一个满足下述条件的
子集
:
- 你可以将选中的元素放置在一个下标从 0 开始的数组中,并使其遵循以下模式:
[x, x2, x4, ..., xk/2, xk, xk/2, ..., x4, x2, x]
(注意,k
可以是任何 非负 的 2 的幂)。例如,[2, 4, 16, 4, 2]
和[3, 9, 3]
都符合这一模式,而[2, 4, 8, 4, 2]
则不符合。
返回满足这些条件的子集中,元素数量的 最大值 。
示例 1:
输入:nums = [5,4,1,2,2] 输出:3 解释:选择子集 {4,2,2} ,将其放在数组 [2,4,2] 中,它遵循该模式,且 22 == 4 。因此答案是 3 。
示例 2:
输入:nums = [1,3,2,4] 输出:1 解释:选择子集 {1},将其放在数组 [1] 中,它遵循该模式。因此答案是 1 。注意我们也可以选择子集 {2} 、{4} 或 {3} ,可能存在多个子集都能得到相同的答案。
1要特殊处理
class Solution {
public int maximumLength(int[] nums) {
HashMap<Long, Integer> cnt = new HashMap<>();
for (int x : nums) {
cnt.merge((long) x, 1, Integer::sum);
}
Integer c1 = cnt.remove(1L);
int ans = c1 != null ? c1 - 1 | 1 : 0;
for (long x : cnt.keySet()) {
int res = 0;
for (; cnt.getOrDefault(x, 0) > 1; x *= x) {
res += 2;
}
ans = Math.max(ans, res + (cnt.containsKey(x) ? 1 : -1));
}
return ans;
}
}
Alice 和 Bob 在一个长满鲜花的环形草地玩一个回合制游戏。环形的草地上有一些鲜花,Alice 到 Bob 之间顺时针有 x
朵鲜花,逆时针有 y
朵鲜花。
游戏过程如下:
- Alice 先行动。
- 每一次行动中,当前玩家必须选择顺时针或者逆时针,然后在这个方向上摘一朵鲜花。
- 一次行动结束后,如果所有鲜花都被摘完了,那么 当前 玩家抓住对手并赢得游戏的胜利。
给你两个整数 n
和 m
,你的任务是求出满足以下条件的所有 (x, y)
对:
- 按照上述规则,Alice 必须赢得游戏。
- Alice 顺时针方向上的鲜花数目
x
必须在区间[1,n]
之间。 - Alice 逆时针方向上的鲜花数目
y
必须在区间[1,m]
之间。
请你返回满足题目描述的数对 (x, y)
的数目。
当且仅当 x+y 是奇数,Alice 必胜,一行代码
class Solution {
public long flowerGame(int n, int m) {
return (long) n * m / 2;
}
}
标签:周赛,鲜花,int,ans,Alice,力扣,382,按键,变更
From: https://blog.csdn.net/m0_48590589/article/details/137022609