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

点击跳转题目

本题学到两点:
1.初始化数组,全部为0的简单写法。之前都是

int arr[26];
memset(arr,0,sizeof(arr));

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

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

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;
    }

};

相关推荐

  1. 2434. 使用机器人打印字典字符串

    2024-03-30 22:10:07       47 阅读
  2. 力扣2434.使用机器人打印字典字符串

    2024-03-30 22:10:07       31 阅读
  3. LeetCode 2697. 字典回文串

    2024-03-30 22:10:07       64 阅读
  4. LeetCode 2697. 字典回文串

    2024-03-30 22:10:07       70 阅读
  5. Leetcode 2697. 字典回文串

    2024-03-30 22:10:07       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 22:10:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 22:10:07       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 22:10:07       82 阅读
  4. Python语言-面向对象

    2024-03-30 22:10:07       91 阅读

热门阅读

  1. 数据可视化之极坐标

    2024-03-30 22:10:07       43 阅读
  2. 安卓APP开发中的重要环节:数据和文件存储概述

    2024-03-30 22:10:07       40 阅读
  3. Golang- 邮件服务,发送邮件

    2024-03-30 22:10:07       41 阅读
  4. 【Docker】常用命令 docker compose

    2024-03-30 22:10:07       35 阅读
  5. C语言- %i 读取不同进制的数

    2024-03-30 22:10:07       36 阅读
  6. 2023春秋杯冬季赛wp

    2024-03-30 22:10:07       40 阅读
  7. uniapp 未配置appkey或配置错误的解决

    2024-03-30 22:10:07       44 阅读
  8. Doris案例篇—Doris 在思必驰的应用实践

    2024-03-30 22:10:07       43 阅读
  9. kubelet源码阅读

    2024-03-30 22:10:07       42 阅读
  10. 【软考---系统结构设计师】IPv6

    2024-03-30 22:10:07       45 阅读