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

go语言每日3题

3019. 按键变更的次数

题目:

给你一个下标从 0 开始的字符串 s ,该字符串由用户输入。按键变更的定义是:使用与上次使用的按键不同的键。例如 s = "ab" 表示按键变更一次,而 s = "bBBb" 不存在按键变更。

返回用户输入过程中按键变更的次数。

注意:shift 或 caps lock 等修饰键不计入按键变更,也就是说,如果用户先输入字母 'a' 然后输入字母 'A' ,不算作按键变更。

示例 1:

输入:s = "aAbBcC"输出:2解释: 从 s[0] = 'a' 到 s[1] = 'A',不存在按键变更,因为不计入 caps lock 或 shift 。从 s[1] = 'A' 到 s[2] = 'b',按键变更。从 s[2] = 'b' 到 s[3] = 'B',不存在按键变更,因为不计入 caps lock 或 shift 。从 s[3] = 'B' 到 s[4] = 'c',按键变更。从 s[4] = 'c' 到 s[5] = 'C',不存在按键变更,因为不计入 caps lock 或 shift 。

示例 2:

输入:s = "AaAaAaaA"输出:0解释: 不存在按键变更,因为这个过程中只按下字母 'a' 和 'A' ,不需要进行按键变更。

提示:

  • 1 <= s.length <= 100
  • s 仅由英文大写字母和小写字母组成。
题解:
func countKeyChanges(s string) int {res := 0for i := 1; i<len(s); i++ {if strings.ToLower(string(s[i-1])) != strings.ToLower(string(s[i])) {res++}// strings.ToLower(string(s[i-1])) != strings.ToLower(string(s[i]))// strings.ToLower(string(s[i-1])) != strings.ToLower(string([s[i]]))}return res
}

2970. 统计移除递增子数组的数目 I

题目:

给你一个下标从 0 开始的 正 整数数组 nums 。

如果 nums 的一个子数组满足:移除这个子数组后剩余元素 严格递增 ,那么我们称这个子数组为 移除递增 子数组。比方说,[5, 3, 4, 6, 7] 中的 [3, 4] 是一个移除递增子数组,因为移除该子数组后,[5, 3, 4, 6, 7] 变为 [5, 6, 7] ,是严格递增的。

请你返回 nums 中 移除递增

注意 ,剩余元素为空的数组也视为是递增的。

子数组

示例 1:

输入:nums = [1,2,3,4]输出:10解释:10 个移除递增子数组分别为:[1], [2], [3], [4], [1,2], [2,3], [3,4], [1,2,3], [2,3,4] 和 [1,2,3,4]。移除任意一个子数组后,剩余元素都是递增的。注意,空数组不是移除递增子数组。

示例 2:

输入:nums = [6,5,7,8]输出:7解释:7 个移除递增子数组分别为:[5], [6], [5,7], [6,5], [5,7,8], [6,5,7] 和 [6,5,7,8] 。nums 中只有这 7 个移除递增子数组。

示例 3:

输入:nums = [8,7,6,6]输出:3解释:3 个移除递增子数组分别为:[8,7,6], [7,6,6] 和 [8,7,6,6] 。注意 [8,7] 不是移除递增子数组因为移除 [8,7] 后 nums 变为 [6,6] ,它不是严格递增的。

提示:

  • 1 <= nums.length <= 50
  • 1 <= nums[i] <= 50
题解:
func incremovableSubarrayCount(nums []int) int {n := len(nums)res := 0for i := 0; i<n; i++ {for j := i; j<n; j++ {if isIncrease(nums, i, j) {res++;}}}return res;
}func isIncrease(nums []int, l, r int) bool {for i :=1; i<len(nums); i++ {if i>=l && i <=r+1 {continue}if nums[i] <= nums[i-1] {return false}}if l-1>=0 && r+1<len(nums) && nums[r+1]<=nums[l-1] {return false}return true
}

2974. 最小数字游戏

题目:

你有一个下标从 0 开始、长度为 偶数 的整数数组 nums ,同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏,游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。游戏规则如下:

  • 每一轮,Alice 先从 nums 中移除一个 最小
  • 接着,Bob 会将移除的元素添加到数组 arr 中,然后 Alice 也执行同样的操作。
  • 游戏持续进行,直到 nums 变为空。

返回结果数组 arr 。

示例 1:

输入:nums = [5,4,2,3]输出:[3,2,5,4]解释:第一轮,Alice 先移除 2 ,然后 Bob 移除 3 。然后 Bob 先将 3 添加到 arr 中,接着 Alice 再将 2 添加到 arr 中。于是 arr = [3,2] 。第二轮开始时,nums = [5,4] 。Alice 先移除 4 ,然后 Bob 移除 5 。接着他们都将元素添加到 arr 中,arr 变为 [3,2,5,4] 。

示例 2:

输入:nums = [2,5]输出:[5,2]解释:第一轮,Alice 先移除 2 ,然后 Bob 移除 5 。然后 Bob 先将 5 添加到 arr 中,接着 Alice 再将 2 添加到 arr 中。于是 arr = [5,2] 。

提示:

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100
  • nums.length % 2 == 0

题解:

func numberGame(nums []int) []int {sort.Ints(nums)for i :=0;i<len(nums); i+=2 {nums[i], nums[i + 1] = nums[i + 1], nums[i]}return nums}
http://www.dtcms.com/a/507480.html

相关文章:

  • Mysql 坏表修复
  • 烟台专业网站建设湘潭网页设计
  • 网站按抓取手机软件贵阳wordpress 编程模式
  • Rust 结构体
  • 【2026计算机毕业设计】基于Springboot的微信小程序的古诗词在线学习系统
  • 基于微信小程序的运动康复中心预约系统的设计与实现(SpringBoot+Vue+Uniapp)
  • 微信小程序中使用 Vant Weapp 组件库
  • JAVA无人共享台球杆台球柜系统球杆柜租赁系统源码支持微信小程序
  • c 网站开发程序员网站建设 收费明细
  • dockerfile中CMD和ENTRYPOINT指令
  • 用服务器自建一套无界白板 + 文档协作平台 —— Affine
  • docker可视化面板portainer忘记密码的解决方案
  • Spring 4.1新特性:深度优化与生态整合
  • 湛江网站建设外包网站开发公司报价单模板
  • 画册设计公司网站优书网注册
  • 中国风手机网站模板html自动播放视频
  • 汇编与底层编程笔记
  • 酒店网站建设的需求分析报告做外贸网站赚钱吗
  • 物联网异构设备协同运维中的服务依赖动态解析与容错机制
  • 技术人互助:城市级充电系统(Java 微服务)的落地细节,含 demo 和设备适配经验
  • 如何在GitHub上查看自己提过的Issues
  • 【element-ui】面包屑导航
  • 如何设计一个高端网站简洁大方大气erp系统有哪些功能模块
  • BearPi小熊派 鸿蒙开发入门笔记(2)
  • 《信息系统项目管理师》2017 年下案例分析题及解析
  • 一、新建一个SpringBoot3项目
  • 外贸英文网站开发网站要用什么软件做
  • 凡科网站可以做seo优化周口网站设计
  • 笔记本触摸板无法使用怎么办 5种方法快速恢复
  • C#高级:数据库中使用SQL作分组处理5(Rank() 排名函数)