/**
* @author xnl
* @Description:
* @date: 2022/6/19 22:53
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
String rings = "B0B6G0R6R0R6G9";
System.out.println(solution.countPoints(rings));
}
public int countPoints(String rings) {
if (rings.length() < 6){
return 0;
}
int ans = 0;
// 一共有三种颜色的,所有二维数组的下标是3 分别代表'R'、'G'、'B
int[][] arr = new int[10][3];
int i = 0;
int len = rings.length() % 2 != 0 ? rings.length() - 1 : rings.length();
while (i < len){
arr[rings.charAt(i + 1) - '0'][calculation(rings.charAt(i))]--;
i += 2;
}
for (int j = 0; j < arr.length; j++){
if (arr[j][0] < 0 && arr[j][1] < 0 && arr[j][2] < 0){
ans++;
}
}
return ans;
}
/**
* 计算字符串对应的下标
* 0 1 2
* R'、'G'、'B
* @return
*/
private int calculation(char c){
if (c == 'R'){
return 0;
}
if (c == 'G'){
return 1;
}
if (c == 'B'){
return 2;
}
return -1;
}
}
力扣:2103. 环和杆
最新推荐文章于 2025-12-05 10:55:08 发布
该博客展示了一段Java代码,用于计算给定字符串中无效环的数量。代码首先初始化一个二维数组来存储每个颜色计数,然后遍历字符串,更新颜色计数。最后检查数组中是否存在所有颜色都为负的情况,这种情况被视为一个无效环。计算过程考虑了字符串长度的奇偶性。
896

被折叠的 条评论
为什么被折叠?



