1. 替换所有的问号
题目:1576. 替换所有的问号
算法思路: 从前向后遍历字符串,遇到 '?' 时从 'a' 到 'z' 查找不与前后字符重复的字母。
算法代码:
public String modifyString(String s) {
char[] chars = s.toCharArray();
int n = chars.length;
for (int i = 0; i < n; i++) {
if (chars[i] == '?') {
for (char ch = 'a'; ch <= 'z'; ch++) {
if ((i == 0 || ch != chars[i - 1]) && (i == n - 1 || ch != chars[i + 1])) {
chars[i] = ch;
break;
}
}
}
}
return String.valueOf(chars);
}
2. 提莫攻击
题目:495. 提莫攻击
算法思路: 模拟题目描述并分情况讨论。计算相邻两个时间点的差值,当差值大于等于中毒时间,说明上次中毒持续时间完整;如果差值小于中毒时间,那么上次的中毒只能持续两者的差值。
算法代码:
public int findPoisonedDuration(int[] timeSeries, int duration) {
int n = timeSeries.length;
int ret = 0;
for (int ; i < n - ; i++) {
timeSeries[i + ] - timeSeries[i];
(x >= duration) ret += duration;
ret += x;
}
ret + duration;
}


