题解 | 翻转01

翻转01

https://www.nowcoder.com/practice/2058328e7de94037b556fd4d892820d3

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
}

全部评论

相关推荐

SaviorSu:直接说下学期可以请假,一般情况学校允许我26届,大三就直接去实习了
点赞 评论 收藏
分享
牛客85811352...:1希音不知道算不算大厂 2完全符合,过得很舒服, 3确实只有杂活 领导找我续签到明年3、4月我要继续吗。主要是边实习边秋招这段时间还是有点累
什么是优秀的实习经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务