去除字符串中连续两个重复的字符

如果s包含长度为2的由相同字母组成的子串,那么这些子串会被消除,余下的子串拼成新的字符串。上述消除会反复一轮一轮进行,直到新的字符串不包含相邻的相同字符为止。
例:ABCCBCCCAA AC

思路:栈

import java.util.Scanner;
import java.util.Stack;

public class test2 {
public static void main(String[] str){
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
String[] s=new String[num];
for(int i=0;i<num;i++){
s[i]=sc.next();
}
for(int i=0;i<num;i++)
{
System.out.println(Func(s[i]));
}
}
static String Func(String s){
char[] ch = s.toCharArray();
Stack stack = new Stack();
for (int i = 0; i < ch.length; i++) {
if (stack.empty()) {
stack.push(ch[i]);
}else {
if(stack.peek()==ch[i]){
stack.pop();
}else {stack.push(ch[i]);}
}
}
if(stack.empty()){return “Yes”;}
else {return “No”;}
}
}

发布了20 篇原创文章 · 获赞 0 · 访问量 177

猜你喜欢

转载自blog.csdn.net/weixin_42299862/article/details/104891581
今日推荐