39. 替换所有问号
题目链接:
题目描述:
给你一个字符串 s,s 中只包含小写字母和问号。你需要将所有的问号替换为小写字母,使得最终结果中没有两个相邻的字符是相同的。
算法原理(模拟):
思路
遍历整个字符串,找到问号之后,就用 a~z 的每一个字符去尝试替换即可,确保不与前后字符重复。
模拟解法代码(C++)
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 || s[i - 1] != ch) && (i == n - 1 || s[i + 1] != ch)) {
s[i] = ch;
break;
}
}
}
}
return s;
}
};
40. 提莫攻击
题目链接:
题目描述:
在《英雄联盟》的世界中,有一个叫'提莫'的英雄。他的攻击可以让敌方英雄艾希进入中毒状态。当提莫攻击艾希时,艾希的中毒状态正好持续 duration 秒。请你返回艾希处于中毒状态的总秒数。


