题解 | #点击消除,栈结构#
点击消除
http://www.nowcoder.com/practice/8d3643ec29654cf8908b5cf3a0479fd5
import java.util.* ;
public class Main {
public static void main(String... args) {
Scanner scan = new Scanner(System.in) ;
while(scan.hasNextLine()) {
String str = scan.nextLine() ;
System.out.println(fun(str)) ;
}
}
//返回消除后的最简字符串
public static String fun(String str) {
char[] arr = str.toCharArray() ;
Stack<Character> st = new Stack<>() ;//利用栈结构
for(int i = 0 ; i < arr.length ; i ++) {
char cur = arr[i] ;
if(st.isEmpty() || st.peek() != cur) {
st.push(cur) ;
} else {
st.pop() ;//消除
}
}
StringBuilder sb = new StringBuilder() ;
while(!st.isEmpty()) {
sb.append(st.pop()) ;
}
sb.reverse() ;
String ret = sb.toString() ;
return ret.equals("") ? "0" : ret;
}
}
一个菜鸟的算法刷题记录 文章被收录于专栏
分享一个菜鸟的成长记录
查看2道真题和解析