【数据结构与算法 | 每日一题力扣篇】

1. 力扣3174:清楚数字

1.1 题目:

给你一个字符串 s

你的任务是重复以下操作删除 所有 数字字符:

  • 删除 第一个数字字符 以及它左边 最近非数字 字符。

请你返回删除所有数字字符以后剩下的字符串。

示例 1:

**输入:**s = "abc"

输出:"abc"

解释:

字符串中没有数字。

示例 2:

**输入:**s = "cb34"

输出:""

解释:

一开始,我们对 s[2] 执行操作,s 变为 "c4"

然后对 s[1] 执行操作,s 变为 ""

提示:

  • 1 <= s.length <= 100
  • s 只包含小写英文字母和数字字符。
  • 输入保证所有数字都可以按以上操作被删除。

1.2 思路

用栈即可很轻松解决该题,最后将得到的字符数组反转过来即可。

1.3 题解:

java 复制代码
class Solution {
    public String clearDigits(String s) {
        Deque<Character> deque = new LinkedList<>();
        for(int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            if(ch >= 'A' && ch <= 'z' || ch >= 'A' && ch <= 'Z'){
                deque.push(ch);
            } else {
                deque.pop();
            }
        }
        char[] arr = new char[deque.size()];
        int k = 0;
        while(deque.size() > 0){
            arr[k++] = deque.pop();
        }
        return new String(reverse(arr));
    }
    private char[] reverse(char[] arr) {
        int j = arr.length - 1;
        for(int i = 0; i < arr.length / 2; i++) {
            char temp;
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
            j--;
        }
        return arr;
    }
}
相关推荐
大鱼>1 小时前
AI+货物追踪:跨境电商包裹追踪系统
人工智能·深度学习·算法·机器学习
大鱼>1 小时前
AI+货物追踪:全链路货物可视化追踪系统
人工智能·深度学习·算法·机器学习
大江东去浪淘尽千古风流人物1 小时前
【SLAM】slam高动态位姿估计全链路拆解
算法·面试·职场和发展·视觉里程计·slam·vio·大疆
想你依然心痛1 小时前
量子计算对嵌入式密码学的挑战与后量子算法准备
算法·密码学·量子计算
Jerry5 小时前
LeetCode 28. 找出字符串中第一个匹配项的下标
算法
Jerry7 小时前
LeetCode 459. 重复的子字符串
算法
海石10 小时前
1500分的题目,确实有实力,不过还是我略胜一筹
算法·leetcode
海石10 小时前
【记忆化搜索】条条大路通AC,走好适合你的那一条,走到后再考虑走得快
算法·leetcode
Jerry12 小时前
LeetCode 151. 反转字符串中的单词
算法
咖啡星人k14 小时前
从Vibe Coding到Prompt Engineering:AI编程的新技能树
面试·职场和发展·ai编程