← Home
```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func canPrint(s, t string) bool {
	i, j := 0, 0
	n, m := len(s), len(t)

	for i < n && j < m {
		if s[i] != t[j] {
			return false
		}

		ch := s[i]
		c1 := 0
		for i < n && s[i] == ch {
			i++
			c1++
		}

		c2 := 0
		for j < m && t[j] == ch {
			j++
			c2++
		}

		if c2 < c1 {
			return false
		}
	}

	return i == n && j == m
}

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	var n int
	fmt.Fscan(in, &n)

	for k := 0; k < n; k++ {
		var s, t string
		fmt.Fscan(in, &s, &t)
		if canPrint(s, t) {
			fmt.Fprintln(out, "YES")
		} else {
			fmt.Fprintln(out, "NO")
		}
	}
}
```