相关题解
1.1 替换所有的问号
算法思路:
模拟。从前往后遍历整个字符串,找到问号后,用 a~z 的每一个字符尝试替换即可。
class Solution {
public:
string modifyString(string s) {
int n = s.size();
for(int i=0; i<n; i++){
if(s[i] == '?'){
for(char ch='a'; ch<='z'; ch++){
if((i==0 || ch!=s[i-1]) && (i==n-1 || ch!=s[i+1])){
s[i] = ch;
break;
}
}
}
}
return s;
}
};
2.2 提莫攻击
算法思路:
模拟 + 分情况讨论。
计算相邻两个时间点的差值:
- 若差值大于等于中毒时间,说明上次中毒可以持续 duration 秒;
- 若差值小于中毒时间,说明此时发生了中毒叠加,那么上次的中毒只能持续两者的差值。
class Solution {
public:
int findPoisonedDuration(vector<int>& timeSeries, int duration) {
int ret = 0;
( i=; i<timeSeries.(); i++){
x = timeSeries[i]-timeSeries[i];
(x<=duration) ret+=x;
ret+=duration;
}
ret+duration;
}
};


