当前位置: 首页> 教育> 高考 > 深圳正规煤气公司_深圳市住房和建设局招标公告_青岛seo整站优化哪家专业_北京seo网站设计

深圳正规煤气公司_深圳市住房和建设局招标公告_青岛seo整站优化哪家专业_北京seo网站设计

时间:2025/7/9 7:10:36来源:https://blog.csdn.net/yqq962464/article/details/142393029 浏览次数:1次
深圳正规煤气公司_深圳市住房和建设局招标公告_青岛seo整站优化哪家专业_北京seo网站设计

题目

删除连续重复字符

字符串删除掉连续的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;}}
}
关键字:深圳正规煤气公司_深圳市住房和建设局招标公告_青岛seo整站优化哪家专业_北京seo网站设计

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: