Cómo resolver el problema de invertir la cadena dada si el tamaño de la cadena es mayor que el tamaño de mi RAM

Simplemente hazlo en múltiples partes dividiendo en n partes. Suponiendo que su cadena es A, n partes pueden ser A1, A2 … Un

Ahora reverso de A = Rev (A) = Rev (A1 + A2 + A3 + A4 +… An) = Rev (An) +… .Rev (A2) + Rev (A1)

Leer A1, invertirlo y volver a escribirlo en algún archivo. Haz lo mismo para todos los trozos.
Al final, agréguelos a todos en orden inverso.

Solo para aclarar más mi respuesta, supongo que si la cadena no puede estar en la memoria, debe leerse desde un archivo. Tomemos el tamaño de la cadena para que sea de 1 GB y el tamaño de la memoria ram para que sea de 256 MB.

Lea los primeros 128 MB de cadena (¿por qué no 256 MB? Porque el inverso también necesitará la misma memoria para almacenarlo), inviértalo y escriba en un archivo. Ahora lea los siguientes 128 MB de cadena y repita los mismos pasos 8 veces para invertir la cadena completa. Ahora tiene 8 subcadenas invertidas de 128 MB cada una.

Lea las subcadenas (128 MB) en orden inverso y escríbalas en el archivo de salida.

Otro enfoque puede ser comenzar a leer el archivo de entrada en reversa un carácter a la vez y escribirlo en el archivo de salida.

More Interesting

¿Cuáles son las piezas más llamativas del arte algorítmico?

¿Cómo funciona el algoritmo OKCupid?

¿Qué te dirías a ti mismo cuando recién comenzaste a programar, aprender algoritmos?

¿Qué algoritmos de máquina requieren escala / normalización de datos?

¿La matriz de Java de primitivas se almacena en la pila o el montón?

Cómo resolver esta recurrencia T (n) = T (sqrt (n)) + log_2 n

¿Cómo usaría BFS en un árbol para imprimir los valores de cada nivel por separado?

¿Cómo fue Alkhwarizm 2013 por IIIT Allahabad?

Mis ubicaciones están por venir, así que he estado implementando estructuras de datos y algoritmos en Python, pero llegué a saber que muchas empresas no tienen Python instalado en sus estaciones de trabajo. ¿Es verdad? Y si es así, ¿estaría bien cambiar de Python a Java, que no recuerdo mucho?

¿Qué es el algoritmo de soporte?

Dado un volumen que consiste en un número de ubicaciones dentro de un espacio tridimensional definido, y a cada una de estas ubicaciones se le asigna algún número, ¿hay alguna métrica obvia que se pueda aplicar que mida la complejidad de la distribución de las mediciones?

Si estudié modelado matemático financiero avanzado en la universidad con un coeficiente intelectual de 145, ¿con qué probabilidad podría construir un algoritmo HFT rentable?

Cómo encontrar el número máximo de árboles de expansión mínima en un gráfico

¿Cómo empiezo a aprender o fortalecer mi conocimiento de las estructuras de datos y algoritmos?

¿Vale la pena tomar el curso en línea de comercio algorítmico en Quantinsti?