首页 > 其他分享 >1047.remove-all-adjacent-duplicates-in-string 删除字符串中所有相邻重复项

1047.remove-all-adjacent-duplicates-in-string 删除字符串中所有相邻重复项

时间:2022-08-16 19:36:06浏览次数:58  
标签:1047 string duplicates res pop st char include

利用stack(栈)这一数据结构,当前字符与栈顶字符相等时,pop(),最后把栈中的字符还原成字符串,注意栈是LIFO的,因此还原字符串时要注意顺序。

#include <stack>
#include <string>
using std::stack;
using std::string;
class Solution {
  public:
    string removeDuplicates(string s) {
        stack<char> st;
        char temp;
        for (char c : s) {
            if (st.empty() || st.top() != c)
                st.push(c);
            else {
                st.pop();
            }
        }
        string res;
        while (!st.empty()) {
            res = st.top() + res;
            st.pop();
        }
        return res;
    }
};

也可以直接使用string结构实现

#include <stack>
#include <string>
using std::stack;
using std::string;
class Solution {
  public:
    string removeDuplicates(string s) {
        string st;
        char temp;
        for (char c : s) {
            if (st.empty() || st.back() != c)
                st.push_back(c);
            else {
                st.pop_back();
            }
        }
        return st;
    }
};

标签:1047,string,duplicates,res,pop,st,char,include
From: https://www.cnblogs.com/zwyyy456/p/16592690.html

相关文章

  • Redis常用指令之string、list、set、zset、hash
    Redis之五大类型常用指令redis的一些小知识redis服务器端口默认是6379在编译完成后的bin目录下启动服务端:redis-server客户端连接操作:redis-cli-hlocalhost-p......
  • String _split()
    S.split(s)表示将字符串S按照s截开,对于空白字符Stringstr="abcd";String[]arr1=str.split("");//仅分割一个空格String[]arr2=str.split("s");Strin......
  • std::string assign
    参考std::string#include<iostream>#include<string>usingnamespacestd;intmain(){stringstr;stringbase="Thequickbrownfoxjumpsoveralazy......
  • Blob转字符串(Blob to string)
    方法1://data:指待读取blob数据letreader=newFileReader();reader.onload=event=>{//读取之后进行操作的代码区域,event.currentTarget.re......
  • StringBuffer和StringBuilder
    StringBuffer线程安全;执行效率:StringBuilder> StringBuffer>String ......
  • 459.repeated-substring-pattern 重复的子串
    假设一个字符串,是由一个重复的子串组成的,那么它的最长相等前后缀必然与整个字符串的必然相差了一个重复子串的长度。假设整个字符串的长度为len,那么next[len-1]+1就是......
  • c++标准IO 中的string流
    c++标准IO中的string流sstream头文件sstream头文件定义了三个类型来支持内存和string之间的IO,在用户看来,string类就像是一个IO流一样。istringstream处理行内的多......
  • Request.QueryString 的用法
    https://blog.csdn.net/dragon_ton/article/details/49464413?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogComme......
  • String的使用
    1.String的使用Strings1=“abc”;//字面量的定义方式Strings2=“abc”;System.out.println(s1==s2)//true,s1、s2指向同一个地址 1.String声明为final的,不可......
  • CF EDU 96 E - String Reversal
    贪心、逆序对E-StringReversal题意给一个长度为n的字符串s,(n<=2e5),把s反转后的字符串记为s',每次只可以交换相邻两个字符,求把s变为s'的最小次数思路......