题解 | #小美的01串翻转#

小美的01串翻转

https://ac.nowcoder.com/acm/problem/258418

思路

  • 01 串相邻字符都不相等只有两种情况:
    1. 以0开头:010101....
    2. 以1开头:101010....
  • 因此可以遍历字符串S的所有连续子串,模拟子串变换到情况1和情况2的操作次数,取两者中的最小值,就是该字串的权值。
  • 保存操作次数, 保存操作次数,权值为。 更新为保存s[i, j + 1] -> 010101...操作次数, 为保存s[i, j + 1] -> 101010...操作次数,求得s[i, j + 1]的权值

代码


import (
    "fmt"
)
const N = 2010
var s string

func min(a, b int) int {
    if(a > b) {
        return b
    }
    return a
}

func main() {
    fmt.Scan(&s)
    n := len(s)
    var ans int

    for i := 0; i < n; i++ {
        var t1, t2 int
        for j := i; j < n; j++ {
            if(j % 2 == 0) {
                if(s[j] != '0') {
                    t1++
                } else {
                    t2++
                }
            } else {
                if(s[j] != '1') {
                    t1++
                } else {
                    t2++
                }
            }

            ans += min(t1, t2);  // s[i, j]的权值
        }
    }
    
    fmt.Print(ans)
}
全部评论

相关推荐

11-28 16:00
已编辑
武汉理工大学 Java
Tom哥981:这份简历是“短期项目硬堆中大型系统技术”的“技术炫技式造假模板”,槽点密集到能当反面教材: ### 1. 「项目时长」和「技术密度」严重脱节,造假痕迹焊死在简历上 两个项目时长分别是**3个月、2个月**,但堆了Spring AI、Elasticsearch、MinIO、Kafka、ShardingSphere、Docker、Sentinel等近20个中大型项目才用的技术——正常情况下,光把这些中间件的文档看完+环境搭好,3个月都不够,更别说实现“AI多轮对话、分库分表、RBAC权限、大模型调用”这些功能。 说白了:你这不是“做项目”,是把“后端技术栈清单”往项目里硬塞,明摆着“只调用了API,没碰过核心逻辑”。
点赞 评论 收藏
分享
昨天 22:35
门头沟学院 Java
投递华为HUAWEI等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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