Вопрос: Напишите функцию, которая принимает целое число без знака и возвращает количество бит «1» (также известное как вес Хэмминга).
Пример ввода : 00000000000000000000000000001011.
Вывод: 3
Пояснение : входная двоичная строка 00000000000000000000000000001011 имеет три «1» бита.
Мой подход: publi c Решение класса
{
public int hammingWeight(int n)
{
int i=0;
String s = Integer.toString(n);
HashMap<Character,Integer> hm = new HashMap<>();
while(i<s.length())
{
if(hm.containsKey(hm.get(i)))
hm.put(s.charAt(i),hm.get(i)+1);
else
hm.put(s.charAt(i),1);
i+=1;
}
return hm.get('1');
}
}
Мой вклад: 1011
Мой вывод: 1
Ожидаемый правильный вывод: 3
Я не понимаю, почему это Решение hashmap для подсчета количества единиц не работает. Может кто-нибудь помочь?