[Preguntas de programación] nunca pensaron en la edición inteligente
Plazo: C / C ++ de 1 segundo, 2 segundos de las restricciones de espacio en otros idiomas: C / C ++ 32M, 64M otros idiomas
Soy Wang martillo, un editor de una editorial. Yo era responsable de la corrección del envío de manuscritos a Inglés, este trabajo es muy molesto, porque muchos tienen faltas de ortografía a arreglar todos los días. Pero la gente buena siempre se puede encontrar la verdad en el trabajo ordinario. He encontrado un atajo para encontrar mal escrita:
- Las mismas tres letras, se debe tener mal escrito, la eliminación de un mil millones: tal helllo -> hola
- Como dos pares de letras (el tipo AABB) están unidos entre sí, debe ser errores de ortografía, eliminar un segundo par mil millones de cartas: tales helloo -> hola
- La prioridad de la regla por encima de "izquierda a derecha" partido, que si es AABBCC, aunque AABB y CCBB son faltas de ortografía, deben dar prioridad a reparar la AABB, el resultado es AABCC
En especial me maullido es un genio! Me estudió en Lanxiang tenía excavadora y de programación, de acuerdo con este principio escribió un verificador automático, que despegaba de la eficiencia del trabajo. Muy pronto, voy a servir como CEO, se convirtió en presidente de la junta, casarse con formica blanca, llevó a la cúspide de la vida, pensar en todo un poco excitado acerca de ello!
Nunca pensé que me despidieron, y antes de abandonar el jefe me dijo :. "Hacer las cosas a ser dedicado, diligente, los sub-puntos, si la línea de persona, línea por línea, línea por línea de trekking senderismo seco; y si no, seca no hay línea de su partido, su partido no va a hacer el trekking no. "ahora estoy a la persona entera en auge trance ......
Por favor, escuchen a la pregunta: Por favor, entiendan programa de corrección automática de martillo
Descripción Entrada:
La primera línea comprende un número N, el número de esta cadena para ser verificada con los comprende de realización.
Seguido de N filas, cada uno de los actos que ser una cadena de paridad.
Descripción Salida:
N filas, cada fila comprende una cadena a ser reparado.
Ejemplo 1
de entrada
2
helloo
wooooooow
exportación
hola
woow
pensamiento
Aquí está la máquina utilice el método I estado, pero no es la solución óptima, mirada en la línea, sólo un registro habitual de la misma.
Otros utilizan un algoritmo modificado situ doble puntero es más excelente, copiar a otros, es posible que desee hacer comentarios sobre su propio aprendizaje en la materia.
respuesta
package main
import "fmt"
func main() {
var n int
var str string
fmt.Scan(&n)
for ;n>0;n--{
fmt.Scan(&str)
if len(str)<=2{
fmt.Println(str)
}
flag:=0
tmp:=string(str[0])
for i:=1;i<len(str);i++{
switch flag {
case 0:
tmp=tmp+string(str[i])
if str[i]==str[i-1]{
flag=1
}
case 1:
if str[i]!=str[i-1]{
tmp=tmp+string(str[i])
flag=2
}
case 2:
if str[i]!=str[i-1]{
tmp=tmp+string(str[i])
flag=0
}
}
}
fmt.Println(tmp)
}
}