首页 > 编程语言 >贪心算法_划分字母区间

贪心算法_划分字母区间

时间:2022-12-10 14:36:00浏览次数:40  
标签:VBA arr chars 片段 Next Asc 算法 字母 贪心

'字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。
'示例:
'输入: s = "ababcbacadefegdehijhklij"
'输出:[9,7,8] 解释: 划分结果为 "ababcbaca", "defegde", "hijhklij"。 每个字母最多出现在一个片段中。 像 "ababcbacadefegde", "hijhklij" 的划分是错误的,因为划分的片段数较少。
Public list As New Collection

Sub 贪心算法_划分字母区间()
    te = VBA.Asc("a")
    s = "ababcbacadefegdehijhklij"
    Call partitionLabels(s)
    For Each e In list
        Debug.Print e
    Next
    Set list = Nothing
End Sub

Public Sub partitionLabels(s)
    chars = toCharArray(s)
    Dim edge(25)
    For i = 0 To UBound(chars)
        Index = VBA.Asc(chars(i)) - VBA.Asc("a")
        edge(Index) = i
    Next
    idx = 0
    last = -1
    For i = 0 To UBound(chars)
        idx = Application.Max(idx, edge(VBA.Asc(chars(i)) - VBA.Asc("a")))
        If i = idx Then
            list.Add (i - last)
            last = i
        End If
    Next
End Sub

Function toCharArray(s)
    Dim arr()
    For x = 1 To Len(s)
        ReDim Preserve arr(0 To x - 1)
        arr(x - 1) = Mid(s, x, 1)
    Next
    toCharArray = arr
End Function

 

标签:VBA,arr,chars,片段,Next,Asc,算法,字母,贪心
From: https://www.cnblogs.com/eyunkeji/p/16971531.html

相关文章

  • C/C++《程序设计与算法综合实践》备选题目
    C/C++《程序设计与算法综合实践》备选题目《程序设计与算法综合实践》期末大作业题目及评分标准有如下情况之一者,为不及格。(1)未能完成所选题目评分标准的最低要求。(2)......
  • 算法导入
    一、算法分类:服务算法任务算法二、获取方法:http://docs.scu.baidu-int.com/scu-group/CVS/%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/%E8%A7%86%E8%A7%89V2.8/%E5%9F......
  • Bouncy Castle密码算法库
    BouncyCastle密码算法库一、开发背景BouncyCastle是一种用于Java平台的开放源码的轻量级密码术包。它支持大量的密码术算法,并提供JCE1.2.1的实现。因为BouncyC......
  • 基于密码算法库的国密算法支持研究与应用--个人报告
                北京电子科技学院       《信息安全工程技术应用》课程设计报告     基于密码算法库的国密算法支持研究与应用--个人报告   ......
  • MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
    拓端数据部落公众号本文就将采用改进FuzzyC-means算法对基于用户特征的微博数据进行聚类分析。去年,我们为一位客户进行了短暂的咨询工作,他正在构建一个主要基于微博用户特......
  • 贪心算法_最大子序和
    '给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。'示例:输入:[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,......
  • 极大极小值算法应用于五子棋
    原文链接​​MinimaxforGomoku(ConnectFive)​​--作者​​OfekGila​​回顾不知道你是否还记得​​上一篇文章​​,我们使用深度优先搜索算法来解决井字棋游戏,递归......
  • 【面试高频题】难度 2/5,回溯算法经典运用
    题目描述这是LeetCode上的​​93.复原IP地址​​,难度为中等。Tag:「回溯」、「DFS」有效​​IP​​​地址正好由四个整数(每个整数位于​​0​​​到​​255......
  • 贪心算法_摆动序列
    '示例1:'输入:[1,7,4,9,2,5]'输出:6'解释:整个序列均为摆动序列'示例2:'输入:[1,17,5,10,13,15,10,5,16,8]'输出:7'解释:这个序列包含几个长度为7摆动序......
  • 【光伏】基于CJAYA算法实现光伏模型SDM参数估计优化附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......