2434. 使用机器人打印字典序最小的字符串

点击跳转题目

本题学到两点:

1.初始化数组,全部为0的简单写法。之前都是

cpp 复制代码
int arr[26];
memset(arr,0,sizeof(arr));

2.if条件中的&&部分左右顺序不能颠倒。颠倒报错,之前一直没重视。

思路:

遍历s,push当前字符,如果当前的栈顶元素<=余下字符串中发最小字符,则pop并加到结果中。否则一直push到栈中。

cpp 复制代码
class Solution {
public:
    string robotWithString(string s) {
        int arr[26]{};              //简单写法
        for(char c :s) arr[c-'a']++;
        stack<char> st;
        string ans;
        for(char c:s){
            int i=0;
            --arr[c-'a'];
            while(i<26 && arr[i]==0) i++;
            st.push(c);
            while(!st.empty() && st.top()-'a'<=i){          //顺序颠倒会报错,因为使用top()存在栈不空的前提
                ans+=st.top();
                st.pop();
            }
        }
        return ans;
    }

};
相关推荐
凌波粒2 分钟前
LeetCode--90.子集II(回溯算法)
数据结构·算法·leetcode
旖-旎8 分钟前
《LeetCode 417 太平洋大西洋水流问题 FloodFill DFS 解法》
c++·算法·深度优先·力扣·floodfill
凌波粒11 分钟前
LeetCode--46.全排列(回溯算法)
数据结构·算法·leetcode
2zcode25 分钟前
项目文档:基于MATLAB语音信号变声算法设计与实现
算法·matlab·语音识别
指令集梦境31 分钟前
图解:单调栈算法模板(Java语言)
java·开发语言·算法
生成论实验室1 小时前
自动驾驶:一个自主运动的系统
人工智能·算法·机器学习·语言模型·机器人·自动驾驶·安全架构
sheeta19981 小时前
LeetCode 每日一题笔记 日期:2026.06.16 题目:3612. 字符串特殊符号处理
笔记·算法·leetcode
青山木1 小时前
Hot 100 --- 矩阵置零
线性代数·算法·leetcode·矩阵·哈希算法
Jasmine_llq1 小时前
《B4264 [GESP202503 四级] 二阶矩阵》
线性代数·算法·矩阵·二维矩阵遍历枚举所有2×2矩阵·交叉乘积等式条件判断·输入输出快读加速·长整型防溢出计数统计
不知名的老吴1 小时前
面经经验分享|算法和数据结构考察
数据结构·经验分享·算法