消除字符串
这个题目上来就是运用一个回文的一个思想,我目前算法也是入门阶段,所以也处于学习阶段。
public class xiaozfc {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String txt = sc.next();
ArrayList<String> list = new ArrayList<>();
for (int i=0;i<txt.length();i++) {
list.add(txt.substring(i,i+1));
}
//首先将我们的字符串放到一个list集合中
sout(xiaochu(list));
}
//这里利用递归一直循环,不断地消除相邻的两个字符
public static ArrayList<String> xiaochu(ArrayList<String> list){
for (int i=0;i<list.size()-1;i++){
if (list.get(i).equals(list.get(i+1))){
list.remove(i);
list.remove(i);
xiaochu(list);
}
}
return list;
}
//这里就判断是否为空,然后输出字符串就可以了
public static void sout(ArrayList<String> list){
if (!list.isEmpty()){
String src="";
for (String s : list) {
src+=s;
}
System.out.println(src);
}else {
System.out.println("YES");
}
}
}
大家要是有更好的优化也可以在下面评论交流学习
转载:https://blog.csdn.net/weixin_46558851/article/details/110261370
查看评论