Back to Leetcode

Readme

Greedy/2546.Apply-Bitwise-Operations-to-Make-Strings-Equal/Readme.md

latest1011 B
Original Source

2546.Apply-Bitwise-Operations-to-Make-Strings-Equal

因为所有的元素都是0或者1,所以任意一对元素的操作只有四种情况:

  1. (0,0)->(0,0)
  2. (0,1)->(1,1)
  3. (1,0)->(1,1)
  4. (1,1)->(1,0)

从中我们发现,只要s中存在一个1,它就可以将其他任何位置上的0->1或者1->0,可以进行任何想要的变化。变化之后,我们需要考虑s里的这个1本身是否需要调整。如果它不需要调整(即target对应的元素也是1),那么就ok。如果它需要调整(即target对应的元素是0),那么我们需要s里的其他已经变换过的位置上存在1来帮助我们调整,对应这意味着target上也必须存在着1.

所以,只有当s里面有1,且t里面也有一个1(可以与s里的那个1在同一个位置,对应第一种情况;也可以在不同的位置,对应第二种情况),那么就可以实现变化。反之,如果s里面都是0,或者t里面都是0的话,就无法实现变换。