题目解析
这题比较容易地解法是利用栈结构。
即先创建一个栈,然后遍历输入的字符串,将每一个字符尝试压入栈,但是压入前,需要判断,栈顶元素是否和将要压入的字符相同,若不同,则压入,若相同,则字符不压入,且栈顶元素弹出。
由于这题只要遇到两两相邻相同的字符就会消除,比如acccb,消除后就变为了acb,因此遇到>2的奇数个相同相邻字符,是无法消除完的,总是会遗留一个。
注意,遍历的字符如果是非字母,则直接返回0。
Java算法源码
import ;
import ;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner();
(getResult(()));
}
public static int getResult(String s) {
LinkedList<Character> stack = new Linked