この問題http://www.geeksforgeeks.org/find-two-non-repeating-elements-in-an-array-of-repeating-elements/に Method2 を実装したいのですが、問題が 1 つあります。配列の数値を2つのグループ(バイナリ表現の指定された位置に「1」があるグループとないグループ)に分割する方法がわかりません。配列内のInteger.toBinaryString()
各数値に使用する必要があると思いました次の方法:
private static boolean hasOne(int number, int i) {
String s = Integer.toBinaryString(number);
if(s.charAt(i) == '1')
return true;
return false;
}
しかし、問題は、バイナリ表現ですべての数値が同じ長さであるとは限らず、メソッドが正しく機能しないことです。どうすればこれを処理できますか? つまり、パディングをどのように処理できますか?