[E simulación] lc67. Suma binaria (analógica + alta precisión)

Directorio de artículos

1. Fuente del tema

Enlace: 67. Suma binaria

2. Análisis de temas

Prefacio:

Es una adición de alta precisión. Preguntas de plantilla. En este sentido, tlleve el tratamiento muy inteligente , porque tel último acarreo seguro es 1 y el número de acarreo es 1, ¡la redacción es muy inteligente! Entre ellos, la multiplicación de alta precisión también es la idea y la práctica.

  • Complejidad del tiempo : O (n) O (n)O ( n )
  • Complejidad espacial : O (1) O (1)O ( 1 )

Código:

class Solution {
    
    
public:
    string addBinary(string a, string b) {
    
    
        reverse(a.begin(), a.end());
        reverse(b.begin(), b.end());

        string res;
        for (int i = 0, t = 0; i < a.size() || i < b.size() || t; i ++ ) {
    
    
            if (i < a.size()) t += a[i] - '0';
            if (i < b.size()) t += b[i] - '0';
            res += to_string(t % 2);            // 在此最后有进位,则 t 一定为 1,统一了特殊情况
            t /= 2;
        }
        reverse(res.begin(), res.end());

        return res;
    }
};

Supongo que te gusta

Origin blog.csdn.net/yl_puyu/article/details/111873641
Recomendado
Clasificación