本文主要是介绍leetcode:3174 清除数字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
3174 清除数字
题目链接https://leetcode.cn/problems/clear-digits/
题目描述
给你一个字符串 s 。
你的任务是重复以下操作删除 所有 数字字符:
删除 第一个数字字符 以及它左边 最近 的 非数字 字符。
请你返回删除所有数字字符以后剩下的字符串。
示例 1:
输入:s = "abc"
输出:"abc"
解释:字符串中没有数字。
示例 2:
输入:s = "cb34"
输出:""
解释:
一开始,我们对 s[2] 执行操作,s 变为 "c4" 。
然后对 s[1] 执行操作,s 变为 "" 。
题目解析
这道题目是一道字符串处理的题目,主要是删除所有数字字符,并且在删除数字字符后,删除它左边最近的非数字字符。
因此可以通过res记录结果,直接遍历数组,如果是数字字符,则跳过,并删除res中的最后一个字符,如果是非数字字符,则加入res中。
代码实现
python版本:
class Solution(object):def clearDigits(self, s):res=""for i in range(0,len(s)):if s[i].isdigit():res = res[:-1]else:res+=s[i]return res
go版本:
func clearDigits(s string) string {var res []bytefor i:=0;i<len(s);i++{if s[i]<='9'&&s[i]>='0'{res = res[:len(res)-1]}else{res = append(res, s[i])}}return string(res)
}
C++版本:
class Solution {
public:string clearDigits(string s) {string res="";for(int i=0;i<s.size();i++){if(s[i]>='0'&&s[i]<='9'){res.pop_back();}else{res=res+s[i];}}return res;}
};
这篇关于leetcode:3174 清除数字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!