package main import ( "bufio" "fmt" "os" ) func main() { in := bufio.NewReader(os.Stdin) var T int var n,k int fmt.Fscan(in, &T) for t := 1;t<=T; t++{ fmt.Fscan(in, &n,&k) var s string fmt.Fscan(in, &s) if check(s,k) { fmt.Println("YES") } else { fmt.Println("NO") } } } func check(s string,k int) bool { cnt := 0 for i:=0;i<len(s)/2;i++{ if s[i] != s[len(s)-1-i] { cnt++ } } // 这里代表,如果前后不同的个数正好为K,或者K比实际多时,看字符串的长度 if cnt == k || k > cnt && ((k-cnt) % 2 == 0 ||len(s) % 2 != 0){ return true } return false }