5483. 整理字符串 LeetCode周赛
传送门
结题思路
// 思路1:将字符串s依次入栈,若当前值与栈顶元素满足大小写关系时,pop栈顶元素。当字符串为空或为一个字符时,字节返回原串。
class Solution {
public:
string makeGood(string s) {
if(s.length() == 0 || s.length() == 1) return s;
stack<char> stack;
for(int i = 0; i < s.length(); i++)
{
char a = s[i];
char top = stack.top();
if(stack.empty())
{
stack.push(a);
}
else if(a - top == 32 || a - top == -32)
{
stack.pop();
}
else{
stack.push(a);
}
}
string res = "";
while(!stack.empty())
{
res += stack.top();
stack.pop();
}
return reverse(res.begin(), res.end());
}
};
ccc
// 总结:使用栈的数据结构来判断前后两个元素,并通过pop()删除。以后用java写题了,c++累死。