当前位置: 首页 > article >正文

【LeetCode】每日一题 2024_10_30 交换后字典序最小的字符串(字符串、贪心)

前言

每天和你一起刷 LeetCode 每日一题~

LeetCode 启动!

题目:交换后字典序最小的字符串

代码与解题思路

先读题:最多交换一次 相邻 且具有相同 奇偶性 的数字,获得字典序最小的字符串,不难想到,遍历字符串,在遇到第一个符合该性质的字符进行交换就是最优的结果(因为字典序越靠前优先级越高)

两个小技巧:

1、golang 的 swap 不好用,我们一般通过 golang 的语法小技巧进行 swap 操作:a, b = b, a

2、对字符直接进行操作实际上是对其 ASCII 码进行操作,而 ‘0’ 的 ASCII 码是 48,正好是偶数,所以,可以直接对字符进行奇偶判断以及大小的判断,不用转换成整数再操作

func getSmallestString(s string) string {
    b := []byte(s)
    for i := 1; i < len(s); i++ {
        x, y := b[i-1], b[i]
        if x&1 == y&1 && x > y {
            b[i], b[i-1] = b[i-1], b[i]
            break
        }
    }
    return string(b)
}

突然看到,今天也是我坚持每日一题 365 天纪念日~

也不知道每日一题能陪伴我多长时间

每天进步一点点,我们明天不见不散~

可以和我刷一辈子的每日一题吗?
一题一题,积累起来就是一辈子。


http://www.kler.cn/a/372987.html

相关文章:

  • WPF中设置DataGrid的常用样式
  • 2024 Rust现代实用教程:1.2编译器与包管理工具以及开发环境搭建
  • 6977 树的统计
  • log4cplus使用
  • Python语言核心15个必知语法细节
  • Unity3D 逻辑服的ECS框架设计具体实现详解
  • C#语言:从入门到精通
  • el-select、el-autocomplete的选项内容过长显示完整内容
  • 【Linux】动态库、静态库
  • 学习笔记:黑马程序员JavaWeb开发教程(2024.10.30)
  • 《模拟电子技术基础》第六版PDF课后题答案详解
  • 2024年道路运输安全员考试题库及答案
  • 海外云手机是什么?对外贸电商有什么帮助?
  • Java程序设计:spring boot(13)——全局异常与事务控制
  • git回滚到指定的提交
  • 群控系统服务端开发模式-应用开发-安装及提交仓库
  • TIA 中用 GSD 方式组态 ET200SP 安全模块时如何用 S7-FCT 分配安全目标地址
  • python2升python3踩坑纪
  • C++设计模式创建型模式———原型模式
  • Java如何实现PDF转高质量图片
  • 400元左右的头戴式耳机什么牌子好用?2024推荐四款好用高性价比型号
  • wordpress的functions文件非常重要 一定要懂它
  • JavaScript 超大量if-else判断如何优化(设计思路)
  • C语言——八股文(笔试面试题)
  • 大模型中的token是什么;常见大语言模型的 token 情况
  • 基于 Gitee AI数据集实现弹幕不遮挡人像滚动