27.哀家要长脑子了!

目录

[1.316. 去除重复字母 - 力扣(LeetCode)](#1.316. 去除重复字母 - 力扣(LeetCode))

[2. 1209. 删除字符串中的所有相邻重复项 II - 力扣(LeetCode](#2. 1209. 删除字符串中的所有相邻重复项 II - 力扣(LeetCode)

哎哟 烦死了 刚刚不小心退出又没保存 又要写一遍

烦死了 最近刷题不得劲啊 感觉这脑子没长一点

1.316. 去除重复字母 - 力扣(LeetCode)

哎哟 我真的觉得神奇 好奇妙啊 怎么想到的 我真的服了

它把一个字符串做单调栈搞

用两个数组来保证字符串字典序最小(这里体现贪心的思想)与此同时又不重复 亚比 囧囧囧~~

你懂吗。。。

复制代码
class Solution {
public:
    string removeDuplicateLetters(string s) {
        vector<int> num(26), vis(26);
        for(char c : s){
            num[c - 'a']++;
        }
        string stk;
        for(char c : s){
            if(vis[c - 'a'] == 0){
                while(!stk.empty() && stk.back() > c){
                    // 这个字符后面是不是还有 
                    if(num[stk.back() - 'a'] > 0){
                        vis[stk.back() - 'a'] = 0;
                        stk.pop_back();
                    }
                    else{
                        break;
                    }
                }
                vis[c - 'a'] = 1;
                stk.push_back(c);
                
            }
            num[c - 'a']--;
        }
        return stk;
    }
};
2. 1209. 删除字符串中的所有相邻重复项 II - 力扣(LeetCode)

哎哟 我真的私密马赛 我连个暴力我都要看答案 我去死算了 骗人的哈哈

要++count 不要count++

修改后的字符串就等于原来的字符串长度了就意味着没有要改变的了 可以结束返回了

复制代码
class Solution {
public:
    string removeDuplicates(string s, int k) {
        int len = 0;
        while(len != s.size()){
            len = s.size();
            for(int i = 0, count = 1; i < s.size(); i++){
                if(i == 0 || s[i] != s[i-1]){
                    count = 1;
                }
                else if(++count == k){
                    s.erase(i - k + 1, k);
                    break;
                }
            }
        }
        return s;
    }
};

为什么我想不到啊啊啊啊

是不是总结没做到位有没有用心用脑子呢??

怎么那天没发出去。。。

相关推荐
Alsn866 小时前
29.Java中常见加解密算法的基本实现
java·开发语言·算法
1001101_QIA6 小时前
OpenMP学习笔记
算法
Coovally AI模型快速验证6 小时前
YOLO11算法深度解析:四大工业场景实战,开源数据集助力AI质检落地
人工智能·神经网络·算法·计算机视觉·无人机
(❁´◡`❁)Jimmy(❁´◡`❁)6 小时前
【算法】 二分图理论知识和判断方法
c++·算法
徐子童6 小时前
优选算法---哈希表
数据结构·算法·哈希表
疑惑的杰瑞6 小时前
掌握 C 语言流程控制:分支、循环、goto 与表达式求值详解
c语言·开发语言·算法·算术转换
im_AMBER6 小时前
Leetcode 85 【滑动窗口(不定长)】最多 K 个重复元素的最长子数组
c++·笔记·学习·算法·leetcode·哈希算法
B_lack0266 小时前
字节转换算法应用_读取本地时间
数据结构·算法·数组·西门子plc·博途·时间处理·scl
leiming66 小时前
c++ string 容器
开发语言·c++·算法
wljun7397 小时前
六、OrcaSlicer 切片之区域
算法·切片软件 orcaslicer