typo.go 614 B

12345678910111213141516171819202122232425262728293031323334
  1. package main
  2. import "fmt"
  3. func main() {
  4. var N int
  5. fmt.Scan(&N)
  6. for cid := 0; cid < N; cid++ {
  7. var s string
  8. fmt.Scan(&s)
  9. str := []rune(s)
  10. for i := 0; i < len(str)-2; i++ {
  11. if aaa(str, i) {
  12. str = append(str[:i], str[i+1:]...)
  13. i--
  14. } else if aabb(str, i) {
  15. str = append(str[:i+3], str[i+4:]...)
  16. i--
  17. }
  18. }
  19. fmt.Println(string(str))
  20. }
  21. }
  22. func aaa(str []rune, i int) bool {
  23. return str[i] == str[i+1] && str[i+1] == str[i+2]
  24. }
  25. func aabb(str []rune, i int) bool {
  26. if len(str) <= i+3 {
  27. return false
  28. }
  29. return str[i] == str[i+1] && str[i+1] != str[i+2] && str[i+2] == str[i+3]
  30. }