当前位置: 首页 > news >正文

【百日算法计划】:每日一题,见证成长(018)

题目

删除连续重复字符

字符串删除掉连续的3个重复的字符,比如"abbbc" 返回"ac" ,“abbbaad” 返回"d"

思路

  • 构造一个对象,属性为元素及个数;
  • 将对象加入到栈中,同时判断其元素的个数;
  • 当元素个数等于 3 时,则弹出栈。
public class Code02 {Stack<CharWithCount> stack = new Stack<>();/*** 用栈记录不能消除的元素* @param str* @return*/public String remove(String str){int n = str.length();for (int i = 0; i < n; i++) { //顺序处理每个字符char c = str.charAt(i);//栈为空if (stack.isEmpty()){stack.push(new CharWithCount(c, 1));continue;}//栈不为空 栈顶元素跟c比较 且不相同CharWithCount topChar = stack.peek();if (topChar.c != c){stack.push(new CharWithCount(c, 1));continue;}//栈顶元素跟c相同,比较个数,如果已有2个,则弹出if (topChar.count == 2){stack.pop();continue;}//栈顶元素跟c相同 但不满足连连消topChar.count++;}//最后开始输出栈里面的元素int size = stack.size();char[] arr = new char[size];while (!stack.isEmpty()){char c = stack.pop().c;arr[size-1] = c;size--;}StringBuilder sb = new StringBuilder();for (int i = 0; i < arr.length; i++) {sb.append(String.valueOf(arr[i]));}return sb.toString();}public class CharWithCount{public char c;public int count;public CharWithCount(){}public CharWithCount(char c,int count){this.c = c;this.count = count;}}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Ubuntu 22.04 源码下载的几种方法
  • 项目中遇到的问题
  • 【论文阅读】Face2Diffusion for Fast and Editable Face Personalization
  • 搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(五)-聚合
  • GitHub每日最火火火项目(9.20)
  • 【简单点】docker如何部署tomcat
  • 线程池的类型
  • 掌握顶会流量密码!“Mamba+CNN”双热点组合!轻松找到创新点!
  • EP21 Promise封装request请求
  • Java企业面试题3
  • 数据结构—单链表
  • 让医院更智慧,让决策更容易
  • LeetCode_sql_day30(1264.页面推荐)
  • ROS学习笔记13——rosbag功能包的简单使用
  • 【自动化测试】常见的自动化遍历工具以及如何选择合适的自动化遍历工具
  • SegmentFault for Android 3.0 发布
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • CentOS6 编译安装 redis-3.2.3
  • Date型的使用
  • git 常用命令
  • jquery ajax学习笔记
  • Linux链接文件
  • node-glob通配符
  • opencv python Meanshift 和 Camshift
  • Python语法速览与机器学习开发环境搭建
  • Wamp集成环境 添加PHP的新版本
  • 关于Flux,Vuex,Redux的思考
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 通过git安装npm私有模块
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (09)Hive——CTE 公共表达式
  • (3)(3.5) 遥测无线电区域条例
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (Ruby)Ubuntu12.04安装Rails环境
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (函数)颠倒字符串顺序(C语言)
  • (九)One-Wire总线-DS18B20
  • (六)DockerCompose安装与配置
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (四)软件性能测试
  • (转) ns2/nam与nam实现相关的文件
  • .env.development、.env.production、.env.staging
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET Core中的时区转换问题
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .net 无限分类
  • .net开发时的诡异问题,button的onclick事件无效
  • .net中调用windows performance记录性能信息
  • .NET中两种OCR方式对比
  • @property括号内属性讲解
  • @WebServiceClient注解,wsdlLocation 可配置
  • [AHOI2009]中国象棋 DP,递推,组合数