• 力扣 1047 :删除字符串中的所有相邻重复项


    题目描述:

      输入一连串的字符串取出相邻的重复项,注意:消除之后的重复项也要删除

    示例:

    输入:"abbaca"
    输出:"ca"
    解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。
       之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"

    综合解法(js实现):

      解法一(通过使用JS模拟实现的Stack栈来实现):

    
    
    class Stack{
             constructor(){
            this.items=[];
          } //进栈 push(el){ this.items.push(el); } //查看栈顶数据 peek(){ return this.items[this.item.length-1]; } //出栈 pop(){ return this.items.pop(); } //判断长度 size(){ return thisitems.length; } //清空 clear(){ this.items=[]; } //输出全部元素 print(){ return this.items.toString(); } }
    //需要处理的字符串 var str=abccbadr; var stack_instance=new Stack(); for(let i=0;i<str.length;i++){ if(stack_instance.size===0){ stack_instance.push(str[i]); }else{ if(stack_instance.peek()==str[i]){ stack_instance.pop(); }else{ stack_instance.push(sta[i]); } } }

      解法二(也是通过栈的思想直接使用数组实现不需要模拟):

         主要学习解法一,这种数组解法简单就不写了,自由发回吧!

    总结:由问题分析可得每次如果有相同的话删除之后还需要获得之前的字母数据,等价于越靠后的越先比较;这

       个特点和栈的数据处理很一样,所以通过模仿栈来处理再好不过了;处理很简单关键在于思想,把握住思

       想一类问题就迎刃而解。

       一步一个脚印!!!继续加油

    版权声明:本文为博主原创文章,如需转载,请标明出处。

  • 相关阅读:
    IronPython 0.7.6 released
    《用 .NET 开发的轻量级 UI 测试自动化》 的VS2005版本
    VistaDB 2.1 database for .NET has been released
    ORMapper or Object DataBase
    为什么要用Generic
    我的新文章:NTier Server/(Smart)Client 应用程序的设计和开发
    Advanced .NET Remoting, Second Edition
    Windows Mobile 5.0发布!
    Ajax对构架影响的思考
    SmartCode 的源代码
  • 原文地址:https://www.cnblogs.com/gamecc666/p/14591519.html
Copyright © 2020-2023  润新知