```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
fmt.Fscan(reader, &t)
for ; t > 0; t-- {
var n int
fmt.Fscan(reader, &n)
var b string
fmt.Fscan(reader, &b)
// Find distinct characters and sort them
seen := make(map[byte]bool)
for i := 0; i < len(b); i++ {
seen[b[i]] = true
}
r := []byte{}
for c := range seen {
r = append(r, c)
}
sort.Slice(r, func(i, j int) bool { return r[i] < r[j] })
// Build mapping: symmetric replacement
mapping := make(map[byte]byte)
for i := 0; i < len(r); i++ {
mapping[r[i]] = r[len(r)-1-i]
}
result := make([]byte, n)
for i := 0; i < n; i++ {
result[i] = mapping[b[i]]
}
fmt.Fprintf(writer, "%s\n", string(result))
}
}
```