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

html在线编辑网站备案 网站建设计划书

html在线编辑网站,备案 网站建设计划书,成都装修培训学校,经典网站目录 1. 题目描述2. 示例3. 思路4. 遇上的问题5. 具体实现代码6. 官方题解7 题目来源 1. 题目描述 给你一个下标从 0 开始的字符串 s ,重复执行下述操作 任意 次: 在字符串中选出一个下标 i ,并使 c 为字符串下标 i 处的字符。并在 i 左侧&…

目录

        • 1. 题目描述
        • 2. 示例
        • 3. 思路
        • 4. 遇上的问题
        • 5. 具体实现代码
        • 6. 官方题解
        • 7 题目来源

1. 题目描述

给你一个下标从 0 开始的字符串 s ,重复执行下述操作 任意 次:

在字符串中选出一个下标 i ,并使 c 为字符串下标 i 处的字符。并在 i 左侧(如果有)和 右侧(如果有)各 删除 一个距离 i 最近 的字符 c 。
请你通过执行上述操作任意次,使 s 的长度 最小化 。

返回一个表示 最小化 字符串的长度的整数。

2. 示例
示例 1:输入:s = "aaabc"
输出:3
解释:在这个示例中,s 等于 "aaabc" 。我们可以选择位于下标 1 处的字符 'a' 开始。接着删除下标 1 左侧最近的那个 'a'(位于下标 0)以及下标 1 右侧最近的那个 'a'(位于下标 2)。执行操作后,字符串变为 "abc" 。继续对字符串执行任何操作都不会改变其长度。因此,最小化字符串的长度是 3 。
示例 2:输入:s = "cbbd"
输出:3
解释:我们可以选择位于下标 1 处的字符 'b' 开始。下标 1 左侧不存在字符 'b' ,但右侧存在一个字符 'b'(位于下标 2),所以会删除位于下标 2 的字符 'b' 。执行操作后,字符串变为 "cbd" 。继续对字符串执行任何操作都不会改变其长度。因此,最小化字符串的长度是 3 。
示例 3:输入:s = "dddaaa"
输出:2
解释:我们可以选择位于下标 1 处的字符 'd' 开始。接着删除下标 1 左侧最近的那个 'd'(位于下标 0)以及下标 1 右侧最近的那个 'd'(位于下标 2)。执行操作后,字符串变为 "daaa" 。继续对新字符串执行操作,可以选择位于下标 2 的字符 'a' 。接着删除下标 2 左侧最近的那个 'a'(位于下标 1)以及下标 2 右侧最近的那个 'a'(位于下标 3)。执行操作后,字符串变为 "da" 。继续对字符串执行任何操作都不会改变其长度。因此,最小化字符串的长度是 2 。提示:1 <= s.length <= 100
s 仅由小写英文字母组成
3. 思路
  1. 遍历一遍字符串,
  2. 每次遍历的时候,从中心往两边比较左右两边是否有相同字符,
  3. 有则替换。
4. 遇上的问题

在替换的时候遇到的问题 slice[i:j],是左包右不包的
自己写的代码虽然阅读易懂,但是看着还是太笨长了

5. 具体实现代码
package mainimport "fmt"//2716. 最小化字符串长度
/*
给你一个下标从 0 开始的字符串 s ,重复执行下述操作 任意 次:在字符串中选出一个下标 i ,并使 c 为字符串下标 i 处的字符。并在 i 左侧(如果有)和 右侧(如果有)各 删除 一个距离 i 最近 的字符 c 。
请你通过执行上述操作任意次,使 s 的长度 最小化 。返回一个表示 最小化 字符串的长度的整数。*/var (leftFlag = falserightFlag = truenoResultFlag = -1
)func minimizedStringLength(s string) int {for i:=0;i<len(s);{tempStr1 := ""tempStr2 := ""nextIndex := 0if i >= len(s){break}if i != 0{tempStr1 = s[:i]// 寻找leftIndex := minimizedStringLengthFindIndex(s[:i],s[i],leftFlag)// 替换if leftIndex != noResultFlag{tempStr1 = s[:leftIndex] + s[leftIndex+1:i]nextIndex --}}if i != len(s)-1{tempStr2 = s[i+1:]// 寻找rightIndex := minimizedStringLengthFindIndex(s[i+1:],s[i],rightFlag)// 替换if  rightIndex != noResultFlag{tempStr2 = s[i+1:i+1+rightIndex] + s[i+1+rightIndex+1:]}}// 修改snextIndex++s = tempStr1 + string(s[i]) + tempStr2// 更新下次遍历索引i= i+nextIndex}return len(s)
}func minimizedStringLengthFindIndex(s string, target uint8,flag bool) int{index := -1if flag == leftFlag{for i := len(s)-1;i>=0;i-- {if s[i] == target{index = ibreak}}}else {for i := 0;i<len(s);i++ {if s[i] == target{index = ibreak}}}return  index
}func main()  {result := minimizedStringLength("iilcuscicwq")fmt.Println(result)//result = minimizedStringLength("cbbd")//fmt.Println(result)
}
6. 官方题解
func minimizedStringLength(s string) int {var mask uintfor _, c := range s {mask |= 1 << (c - 'a')}return bits.OnesCount(mask)
}作者:力扣官方题解
链接:https://leetcode.cn/problems/minimize-string-length/solutions/3614466/zui-xiao-hua-zi-fu-chuan-chang-du-by-lee-o801/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

虽然有考虑过去重就好,但是题目描述里要求的 从中心到两边去重相邻的字符。。

7 题目来源

链接: link


如果题解是产品需求,在工作上也能达到目的,但是不太符合产品的逻辑,还是不太认可。------swrici

http://www.dtcms.com/a/475894.html

相关文章:

  • 王也头像高清帅气seo短视频网页入口引流推广
  • 做网站的整体风格确定方式产品设计招聘网站
  • 做网站备案照片的要求如何用凡科网建立一个网站
  • 做网站公司北京缙云网站建设
  • 怎么样自己创建网站怎么做网站外推
  • 网站打不开了什么原因企业网站建设457
  • Kotlin 异步数据流三剑客:Flow、Channel、StateFlow 深度解析
  • 公司网站怎么修改著名的网站制作公司
  • asp.net 建立网站吗软件开发包含网站开发吗
  • 英文网站cms企业形象宣传策划方案
  • 桥南做网站上海网站快速优化排名
  • 为什么要学电商网站建设用什么网站做一手房最好
  • 邢台哪里建网站网站建设的建议
  • 百度网站流量统计怎样做一个网站赚钱吗
  • Spring轻量级文件预览的组件
  • 网站建设与管理课程实训杭州西湖区抖音seo哪里找
  • 做团购网站商品从哪里找做内容的网站
  • 有哪些好的ps素材网站做爰全过程免费网站可以看
  • 网站自助制作公司网站设计要求
  • 苏州市吴江区住房和城乡建设局网站网站建设与网页设计 视频
  • 东莞官方网站 优帮云有实力的网站建设公司
  • 装饰公司手机网站云海建设工程有限公司网站
  • 如何建学校网站wordpress云建站教程
  • 在网站上做远程教育系统多少钱wordpress置顶精华图标
  • 怎么给网站备案网站制作开票几个点
  • 产品发布网站自己制作上传图片的网站怎么做
  • 龙岩做网站哪家最好专做蔬菜大棚的网站
  • 网站开发+语音泽库县公司网站建设
  • Ultralytics代码库深度解读【二】: TensorRT 引擎文件的构建与序列化
  • 广东网站建设哪家中国外贸网站