Drill

ProblemsGo › patterns

Does this account hold every right

easypatternsBit manipulationGo

Access control packs rights into a bitfield. A guard checks whether an account holds all of the rights an action needs.

holdsEveryRight(held: int, needed: int) → bool

Go needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.

Solve it in Python →

Where you start

func holdsEveryRight(held int, needed int) bool {
	
}

Worked examples

CallResult
holdsEveryRight(7, 5)true
holdsEveryRight(5, 7)false
holdsEveryRight(0, 0)true
holdsEveryRight(8, 0)true

Hint

Mask what is held against what is needed. If the masked result still equals what was needed, nothing was missing.

Reference solution in Go
func holdsEveryRight(held int, needed int) bool {
	return held&needed == needed
}

The same problem in another language

More patterns problems in Go