一道面试题,当时有思路,但是没写出来,
回家写了写,请各位大神评论。
需求: 给定任意字符串,消除相邻重复的字符, 如果结果字符串中还包含相邻的重复字符继续消除,直到结果字符串中相邻字符间都不相同为止。如ABBCADDDAC->ACAAC->ACC->A
实现代码:
public static void main(String[] args) {
String str = \"ABBCADDDAC\"; //ACAAC ACC A
StringDeleteTest test = new StringDeleteTest();
test.deleteRepeatChar(str);
}
public void deleteRepeatChar(String str) {
List list = new ArrayList();
String newStr = \"\";
if(str.length() == 1) {
newStr = str;
}
for(int i = 1 ;i < str.length();i++) {
String chi = str.substring(i, i+1);//取后一个字符
String chj = str.substring(i-1, i);//取前一个字符
if(chi.equals(chj)&&!list.contains(chi)) {
list.add(chi);
}else if(!list.contains(chj)){
newStr += chj;
}
if(i == str.length()-1 && !list.contains(chi)) {
newStr += chi;
}
}
if(list.size() >0 ) {
System.out.println(\"newStr....\" + newStr);
this.deleteRepeatChar(newStr);
}
}
继续阅读与本文标签相同的文章
-
为什么微软要把数据中心设在水下?数据中心制冷有多花钱?
2026-05-18栏目: 教程
-
PDF转成TXT文本格式,应该如何转换比较快?
2026-05-18栏目: 教程
-
投资10亿!薛城区将开创全新现代化商贸物流模式
2026-05-18栏目: 教程
-
平板笔记本全网相关搜索量排名 平板笔记本全网相关搜索量排行榜
2026-05-18栏目: 教程
-
拼多多开店的5大盲区!赶紧避开
2026-05-18栏目: 教程
