对于字符串的’ * ‘, 删除离它最近的左侧的字母,并删除’ * '本身。
返回删除所有‘ * ’之后的string.
操作总是有效的。
思路:
因为遇到’ * ‘删除的是它最近的左侧的字母,
想到用stack, 遇到’ * '就出栈一个字母,否则入栈。
因为操作总是有效的,不用考虑操作过程中栈为空的情况。
用数组模拟stack.
public String removeStars(String s) {
int n = s.length();
char[] st = new char[n];
int head = -1;
for(int i = 0; i < n;i ++) {
char ch = s.charAt(i);
if(ch == '*') head --;
else st[++head] = ch;
}
return String.valueOf(st,0,head+1); //param: char arr, offset, count
}