1576.替换所有的问号
【题目】:1576. 替换所有的问号
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;
}
};
在判断 ch 与相邻字符时,除了正常情况下检查 ch != s[i - 1] 和 ch != s[i + 1],还需要考虑边界条件。对于 i == 0,表示没有左边字符,应该只检查右边字符;对于 i == n - 1,表示没有右边字符,应该只检查左边字符。因此,条件可以改为:if((i == 0 || ch != s[i - 1]) && (i == n - 1 || ch != s[i + 1]))
495.提莫攻击
【题目】:495. 提莫攻击
【算法思路】
基本算法思想就是模拟,根据题目要求编写代码,注意当到最后一个位置需要单独加上中毒时间。
【代码实现】
class Solution {
public:
int findPoisonedDuration(vector<>& timeSeries, duration) {
n = timeSeries.();
ret = ;
( i = ; i < n; i++) {
x = timeSeries[i] - timeSeries[i - ];
(x >= duration) ret += duration;
ret += x;
}
ret + duration;
}
};


