[Preguntas de programación] nunca pensaron en la edición inteligente máquina de estados Golang

[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:

  1. Las mismas tres letras, se debe tener mal escrito, la eliminación de un mil millones: tal helllo -> hola
  2. 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
  3. 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)
    }
}
Publicado 38 artículos originales · ganado elogios 0 · Vistas 1031

Supongo que te gusta

Origin blog.csdn.net/Cyan1956/article/details/104804609
Recomendado
Clasificación