实战总结
string的常用方法:
- pop_back, push_back使得可以直接像操作栈一样操作string类型
- 注意,上面两个方法只能对单个字符char操作
- 但是‘ + ’对 char 和 string 均适用
题面
思路详解:
不妨对比一下其他思路:
双指针?这会加大对各种情形分类讨论的复杂程度
用栈思想的问题的特点: 对‘紧挨着’对象来判断条件和执行操作
本题思路:
- 初始化一个res(string类型)准备接收
- 遍历s中所有字符,判断:
- 若是数字: res.pop // 即 “删除数字字符以及它左边最近的非数字字符“
- 若不是数字: res.push //接收作为”剩下的字符串“
AC代码实现
class Solution {
public:
string clearDigits(string s) {
string res = "";
for(int i=0; i<s.length(); i++)
{
if(s[i]>='0' && s[i]<='9') res.pop_back();
else res.push_back(s[i]);
}
return res;
}
};