Если вы хотите решить это рекурсивно, учтите, что для двоичной строки вы можете преобразовать ее в целое число, добавив 1 или 0 на основе самого правого числа, добавив 2 раза эту функцию на основе остальной части строки.
Это будет выглядеть примерно так в псевдокоде
// input is an integer of 1's and 0's
def f( int binaryString ):
int lastDigit = binaryString % 10 // Get the last digit
int restOfString = binaryString / 10 // Remove the last digit
return lastDigit + (2 * f(restOfString)) // add the last digit to twice f
// applied to the rest of the string
Вам также нужно будет проверить, когда остальная часть строки сводится к нулю как конечное условие, но этоОсновная логика для метода.