Para demostrar la seguridad Offer_ problema de programación _ sustituir los espacios

título Descripción

Por favor implementar una función, una cadena para reemplazar cada espacio a "20%". Por ejemplo, cuando la cadena es somos felices. Después de la cadena se reemplaza después de We% 20Are% 20Happy.
 
 
 
Enlaces: https://www.nowcoder.com/questionTerminal/4060ac7e3e404ad1a894ef3e17650423?answerType=1&f=discussion
Fuente: Ganado de no intervención red

ideas:

  1. Solución uno: incorporado en Java función str.toString () reemplazará ( "", "% 20").
  2. Solución dos: en la sustitución de la cadena actual.
    1. El cálculo de la primera cadena de reemplazo requiere mucho espacio, espacio de expansión y la cadena original;
    2. Desde la parte posterior, a continuación, la cadena de reemplazo, cada cadena de medida sólo una vez;
    3. Si el frente hacia atrás, las necesidades de cada cadena para mover muchas veces menos eficiente.
  3. Solución tres: abrir una nueva cadena.

  4. para cuatro (añado): Usted puede mirar hacia atrás en el pasado, si usted ve un espacio, se puso detrás de una serie de espacios se mueven tres longitudes de atrás. (Parece este problema con la forma en que me puede corregir en los comentarios a continuación)

código:

public class Prueba { 
void main (String [] args) public static {
System.out.println (nueva solución (). replaceSpace (nuevo StringBuffer ( "Estamos felices"))) ;;
System.out.println (nueva solución (). ReplaceSpace2 (nuevo StringBuffer ( "Estamos felices"))) ;;
}
}

  • Esta es la manera de lograr dos ideas de resolución de problemas

En primer lugar ir sobre la cadena original, la longitud y el número de espacios en los que para averiguar la cadena, dependiendo del número y la longitud de la cadena original de los espacios podemos encontrar la longitud de la última nueva cadena. Proporcionando dos punteros apuntan a la punto2 point1 final y la ubicación de la cadena original y la nueva cadena. Si el contenido no es el espacio point1 punto, a continuación, asignar el contenido de los puntos de ubicación punto2, si el punto point1 a un espacio, a continuación, la asignación de inicio punto2 "02%" hasta point1 espectáculo punto2 == cuando todos los personajes espacios han sido sustituidos acabada .



Solución clase {
//
//链接: https: //www.nowcoder.com/questionTerminal/4060ac7e3e404ad1a894ef3e17650423 answerType = 1 & f = discusión?
//来源:牛客网

public String replaceSpace (StringBuffer str) {
int num = 0;
int spacenum = 0;
for (int i = 0; i <str.length (); i ++) {
num ++;
si (str.charAt (i) == ' ') {
spacenum ++;
}
}
Int oldLength = str.length ();
int oldIndex = oldLength - 1;
int newLength = oldLength + spacenum * 2;
str.setLength (newLength);
int NewIndex = newLength - 1;
para (; oldIndex El> = 0 && oldLength <la newLength; oldIndex El -) {
NUM ++;
IF (str.charAt (oldIndex The) == '') {
str.setCharAt (newIndex--, '0');
str.setCharAt ( newIndex--, '2');
str.setCharAt (newIndex--, '%');
} la else {
str.setCharAt (newIndex--, str.charAt (oldIndex la));
}
}
System.out.println ( " el número de "+ NUM);
str.toString retorno ();
}


// para cuatro (añado): usted puede mirar hacia atrás en el pasado, si usted ve un espacio, se puso detrás de una serie de espacios se mueven hacia atrás 3 longitud. (Parece este problema con la forma en que me puede corregir en los comentarios abajo)


Cadena replaceSpace2 pública (StringBuffer str) {
int num = 0;
int cuenta = 0;
for (int i = 0; I <str.length () - tiene; i ++) {
IF (str.charAt (I) == '') {
// espacios, no ciclo de los tres describirá más adelante
tiene = 3;
str.length len = int ();
int len = + newl 3;.
str.setLength (newl);
for (int J = newl; J> I + 3;. J,) {
. str.setCharAt (-J 1, STR .charAt (len--));
NUM ++;
}
str.setCharAt (I ++, '%');
str.setCharAt (I ++, '2');
str.setCharAt (I ++, '0');

} la else {
NUM ++;
}

}
System.out.println ( "次数" + num);
volver str.toString ();
}

}

resultados:


Los dos métodos anteriores son el ciclismo 24 veces

El número de 24-
We% 20Are% 20Happy
el número de 24-
We% 20Are% 20Happy


Referencia: https://blog.csdn.net/cpongo1/article/details/88536263

Supongo que te gusta

Origin www.cnblogs.com/liran123/p/12634828.html
Recomendado
Clasificación