划分字母区间(双指针,贪心)

划分字母区间(双指针,贪心)

题目描述:字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。

双指针

思路一:目的是找到最多的n个区间,这写区间中的字母在别的区间没有出现。那么从第一个字母开始,从后边找到与其相同的作为区间的终点。在这个区间里移动,找相对应字母的最后一个,如果比其大我们就更新区间的终点。

c 语言用数字代替就好
代码:

vector<int> partitionLabels(string s) {
   
   
        vector<int>ans;
        // left :双指针的左指针,用来查询区间中的字母
        // end :记录当前区间的末端
        //start:记录区间的开始位置
        int left,end,start;
        int n = s.size();
        left= 0;
        while(left<n) //不能超过字符串长度
        {
   
   
            start = left; //记录区间开始位置
            char ch 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落春只在无意间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值