Directorio de artículos
1. Fuente del tema
Enlace: 67. Suma binaria
2. Análisis de temas
Prefacio:
- [Plantilla + de alta precisión] Plantillas de suma, resta, multiplicación y división de números enteros de alta precisión .
- [E simulación] lc66. Plus one (analógico + alta precisión)
Es una adición de alta precisión. Preguntas de plantilla. En este sentido, t
lleve el tratamiento muy inteligente , porque t
el ú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;
}
};