方法一:模拟
思路与算法
使用 valid 标记是否处于竖线对。如果不在竖线对,字符是 *,答案加一。
代码
class Solution {
public int countAsterisks(String s) {
char[] cs = s.toCharArray();
int n = cs.length;
boolean valid = true;
int res = 0;
for (int i = 0; i < n; i++) {
char c = cs[i];
if (valid && c == '*') {
res++;
}
if (c == '|') {
valid = !valid;
}
}
return res;
}
}
复杂度分析
时间复杂度:O(n),一次遍历
空间复杂度:O(1),常数空间