【Java|golang】2103. 环和杆---位运算

这篇具有很好参考价值的文章主要介绍了【Java|golang】2103. 环和杆---位运算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

总计有 n 个环,环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。

给你一个长度为 2n 的字符串 rings ,表示这 n 个环在杆上的分布。rings 中每两个字符形成一个 颜色位置对 ,用于描述每个环:

第 i 对中的 第一个 字符表示第 i 个环的 颜色(‘R’、‘G’、‘B’)。
第 i 对中的 第二个 字符表示第 i 个环的 位置,也就是位于哪根杆上(‘0’ 到 ‘9’)。
例如,“R3G2B1” 表示:共有 n == 3 个环,红色的环在编号为 3 的杆上,绿色的环在编号为 2 的杆上,蓝色的环在编号为 1 的杆上。

找出所有集齐 全部三种颜色 环的杆,并返回这种杆的数量。

示例 1:
【Java|golang】2103. 环和杆---位运算,java力扣算法,golang,java位运算符,java,golang

输入:rings = “B0B6G0R6R0R6G9”
输出:1
解释:

  • 编号 0 的杆上有 3 个环,集齐全部颜色:红、绿、蓝。
  • 编号 6 的杆上有 3 个环,但只有红、蓝两种颜色。
  • 编号 9 的杆上只有 1 个绿色环。
    因此,集齐全部三种颜色环的杆的数目为 1 。
    示例 2:
    【Java|golang】2103. 环和杆---位运算,java力扣算法,golang,java位运算符,java,golang

输入:rings = “B0R0G0R9R0B0G0”
输出:1
解释:

  • 编号 0 的杆上有 6 个环,集齐全部颜色:红、绿、蓝。
  • 编号 9 的杆上只有 1 个红色环。
    因此,集齐全部三种颜色环的杆的数目为 1 。
    示例 3:

输入:rings = “G4”
输出:0
解释:
只给了一个环,因此,不存在集齐全部三种颜色环的杆。

提示:

rings.length == 2 * n
1 <= n <= 100
如 i 是 偶数 ,则 rings[i] 的值可以取 ‘R’、‘G’ 或 ‘B’(下标从 0 开始计数)
如 i 是 奇数 ,则 rings[i] 的值可以取 ‘0’ 到 ‘9’ 中的一个数字(下标从 0 开始计数)

    public int countPoints(String rings) {
        int[] ints = new int[10];
        int res=0;
        for (int i = 0; i < rings.length(); i+=2) {
            int j = rings.charAt(i + 1) - '0';
            ints[j]|=rings.charAt(i)=='R'?1:rings.charAt(i)=='G'?2:4;
            if (ints[j]==7){
                res++;
                ints[j]=ints[j]<<1;
            }
        }
        return res;
    }

【Java|golang】2103. 环和杆---位运算,java力扣算法,golang,java位运算符,java,golang

func countPoints(rings string) int {
	ints:=[10]int{}
	res:=0
	for i := 0; i < len(rings); i+=2 {
		j := rings[i + 1] - '0'
		if rings[i]=='R' {
			ints[j]|=1
		}else if rings[i]=='G' {
			ints[j]|=2
		}else {
			ints[j]|=4
		}
		
		if ints[j]==7{
			res++
			ints[j]=ints[j]<<1
		}
	}
	return res
}

【Java|golang】2103. 环和杆---位运算,java力扣算法,golang,java位运算符,java,golang文章来源地址https://www.toymoban.com/news/detail-741217.html

到了这里,关于【Java|golang】2103. 环和杆---位运算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JAVA】你可知JAVA中的运算符|重温运算符

    作者主页:paper jie的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将javaSE基础知识一网打尽,希望可以帮到读者们哦。 其他专栏

    2024年02月15日
    浏览(45)
  • java中的位运算和&、|、^运算

      我把平时遇到的位运算参考部分博客和自身应用进行了一点简单的总结,方便记忆与理解;如有错误欢迎各路大神评论指正~ 1、   (算数左移) 表示左移, 不分正负数,低位补0 2、   (算数右移) 表示右移, 如果该数为正,则高位补0; 如果该数为负,则高位补1。 3、

    2024年02月06日
    浏览(33)
  • Java中的运算符--短路运算

    JAVA中有两个短路运算,一个是短路与,一个是短路或。 所谓短路,就是当一个参与运算的操作数足以推断该表达式的值时,另一个操作数(可能是表达式)就不会执行。 短路与: 短路或: || 应用: 逻辑与、逻辑或都是自作向右计算。 两边同时为true,则为true。 有一方为fal

    2024年02月16日
    浏览(45)
  • C++矢量运算与java矢量运算

    概述 : 矢量运算是一种基于向量的数学运算,它遵循特定的法则。以下是矢量运算的一些基本原理: 矢量加法 :可以使用平行四边形法则或三角形法则来执行。当两个矢量相加时,可以将它们的起点放在同一个点上,然后根据平行四边形法则,从这两个矢量的尾部画两条线

    2024年03月25日
    浏览(37)
  • 670. 最大交换 --力扣 --JAVA

    给定一个非负整数,你 至多 可以交换一次数字中的任意两位。返回你能得到的最大值。 将数字转换成字符数组便于遍历; 寻找是否存在比当前元素大的元素,取最后匹配到的元素,进行交换并跳出循环;

    2024年01月25日
    浏览(33)
  • 水壶问题(力扣)数学 JAVA

    有两个水壶,容量分别为 jug1Capacity 和 jug2Capacity 升。水的供应是无限的。确定是否有可能使用这两个壶准确得到 targetCapacity 升。 如果可以得到 targetCapacity 升水,最后请用以上水壶中的一或两个来盛放取得的 targetCapacity 升水。 你可以: 装满任意一个水壶 清空任意一个水壶

    2024年02月13日
    浏览(32)
  • 【模拟】力扣38(Java)

    题目

    2024年01月24日
    浏览(31)
  • 整数拆分(力扣)动态规划 JAVA

    给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k = 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n = 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1。 示例 2: 输入: n = 10 输出: 36 解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。 提示: 2 = n = 58 里程碑意义 解题思路:

    2024年02月17日
    浏览(46)
  • 73. 矩阵置零 --力扣 --JAVA

    给定一个  m x n  的矩阵,如果一个元素为  0  ,则将其所在行和列的所有元素都设为  0  。请使用  原地  算法 。 通过二层循环找出元素为0所在的行和列; 设置标志位记录当前行是否存在元素为0的,设置列表存储列为0的列; 在内循环结束后对存在元素为0的行,填充为

    2024年02月06日
    浏览(46)
  • 最优除法(力扣)数学 JAVA

    给定一正整数数组 nums,nums 中的相邻整数将进行浮点除法。例如, [2,3,4] - 2 / 3 / 4 。 例如,nums = [2,3,4],我们将求表达式的值 “2/3/4”。 但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级。你需要找出怎么添加括号,以便计算后的表达式的值为最大值。 以

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包