<prompt> Kwa kuzingatia mfuatano wa jozi s, rudisha _idadi kiwango cha chini cha ubadilishaji wa herufi ili kuifanya kupishana, au_ -1 _ikiwa haiwezekani._Mfuatano huo unaitwa kubadilishana ikiwa hakuna herufi mbili zilizo karibu zinazolingana. Kwa mfano, mifuatano 010 na 1010 inapishana, huku mfuatano 0100 haupishana.Herufi zozote mbili zinaweza kubadilishwa, hata kama haziko ziko karibu.Mfano wa 1:Ingizo: s 111000Pato: 1Maelezo: Badilisha nafasi za 1 na 4: 111000 - 101010Mfuatano sasa unabadilika.Mfano wa 2:Ingizo: s 010Pato: 0Maelezo: Mfuatano tayari unapishana, hakuna ubadilishaji unaohitajika.Mfano wa 3:Ingizo: s 1110Pato: -1Vikwazo: 1 s.urefu 1000 si ama ni 0 au 1.  <response>: def minSwaps: zeroCount s.count0 oneCount lens - zeroCount ikiwa abszeroCount - oneCount 1: kurudi -1 swaps1 swaps2 0 kwa i, c katika hesabu: ikiwa i 2 0 na c ! 0: kubadilishana1 1 ikiwa i 2 1 na c ! 1: kubadilishana1 1 swaps1 swaps1 2 kwa i, c katika hesabu: ikiwa i 2 0 na c ! 1: swaps2 1 ikiwa i 2 1 na c ! 0: swaps2 1 swaps2 swaps2 2 ikiwa zeroCount oneCount: kurudi dakikaswaps1, swaps2 rudisha swaps2 ikiwa zeroCount oneCount else hubadilishana1 