【Leetcode】【2024048】1544. Make The String Great

做不受欢迎人士的时间比较久,看到有私信下意识以为要挨骂,乐
BGM:思念一个荒废的名字(陈楚生《瘾》)

Descripition

Given a string s of lower and upper case English letters.

A good string is a string which doesn’t have two adjacent characters s[i] and s[i + 1] where:

0 <= i <= s.length - 2

s[i] is a lower-case letter and s[i + 1] is the same letter but in upper-case or vice-versa.

To make the string good, you can choose two adjacent characters that make the string bad and remove them. You can keep doing this until the string becomes good.

Return the string after making it good. The answer is guaranteed to be unique under the given constraints.

Notice that an empty string is also good.

Example

Example 1:

Input: s = "leEeetcode"
Output: "leetcode"
Explanation: In the first step, either you choose i = 1 or i = 2, both will result "leEeetcode" to be reduced to "leetcode".

Example 2:

Input: s = "abBAcC"
Output: ""
Explanation: We have many possible scenarios, and all lead to the same answer. For example:
"abBAcC" --> "aAcC" --> "cC" --> ""
"abBAcC" --> "abBA" --> "aA" --> ""
Example 3:

Input: s = "s"
Output: "s"

Constraints

Constraints:

1 <= s.length <= 100

s contains only lower and upper case English letters.

Solution

Problem:

1.Be careful about making sure that the stack is NOT empty

2.When use for-loop to visit the elements in a empty string s, be careful about the length of s is zero. This time please use s.push_back(element) instead of for-loop in s.length()

Code

class Solution {
public:
    string makeGood(string s)
    {
        stack<char>ori;
        ori.push(s[0]);
        for(int i=1;i<s.length();++i)
        {
            if(!ori.empty())
            {
                char mid=ori.top();
                if((mid>=65&&mid<=90)&&s[i]==mid+32) ori.pop();
                else if((mid>=97&&mid<=122)&&s[i]==mid-32) ori.pop();
                else ori.push(s[i]);
            }
            else ori.push(s[i]);
        }
        if(!ori.empty())
        {
          string c;
            int cnt=0;
            while(!ori.empty())
            {
                c.push_back(ori.top());
                ori.pop();
            }
            reverse(c.begin(),c.end());
            return c;
        }
        else return "";
    }
};

相关推荐

  1. leetcode

    2024-04-09 18:16:01       39 阅读
  2. leetcode

    2024-04-09 18:16:01       38 阅读
  3. leetcode

    2024-04-09 18:16:01       37 阅读
  4. LeetCode

    2024-04-09 18:16:01       20 阅读
  5. leetcode

    2024-04-09 18:16:01       11 阅读
  6. Leetcode -2

    2024-04-09 18:16:01       35 阅读
  7. Leetcode】计算器

    2024-04-09 18:16:01       42 阅读
  8. LeetCode 45

    2024-04-09 18:16:01       46 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 18:16:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 18:16:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 18:16:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 18:16:01       20 阅读

热门阅读

  1. react api:createContext

    2024-04-09 18:16:01       15 阅读
  2. go 获取terraform output输出

    2024-04-09 18:16:01       14 阅读
  3. 5.2 SSH和交换机端口安全概述

    2024-04-09 18:16:01       12 阅读
  4. 通过GDB推进数据库SCN(适用于12c及以上)

    2024-04-09 18:16:01       16 阅读
  5. 多数据源解决事务问题

    2024-04-09 18:16:01       14 阅读
  6. 单例模式

    2024-04-09 18:16:01       13 阅读
  7. TLC3702双微功耗电压比较器

    2024-04-09 18:16:01       15 阅读
  8. 除了sql外还有那些查询语言

    2024-04-09 18:16:01       16 阅读
  9. C++:std命名空间及输入输出流

    2024-04-09 18:16:01       15 阅读
  10. 蓝桥杯——求和

    2024-04-09 18:16:01       16 阅读