当前位置:首页 > 编程笔记 > 正文
已解决

模拟算法及其优化

来自网友在路上 146846提问 提问时间:2023-10-28 00:52:01阅读次数: 46

最佳答案 问答题库468位专家为你答疑解惑

第一题 替换所有问号

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 

class Solution {
public:string modifyString(string s) {string ret;for(int i=0;i<s.size();i++){if(i==0){if(s[i]=='?'&&i+1<s.size()){for(char a='a';a<='z';a++){if(a!=s[i+1]){ret+=a;break;}}}else if(i+1>=s.size()) ret+='a';else ret+=s[i];}else{if(s[i]=='?'){                for(char a='a';a<='z';a++){if(ret[i-1]!=a&&i+1<s.size()&&s[i+1]!=a){ret+=a;break;}if(i+1>=s.size()&&ret[i-1]!=a){ret+=a;break;}}}else ret+=s[i];}}return ret;}
};

第二题 提莫攻击

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 

class Solution {
public:int findPoisonedDuration(vector<int>& timeSeries, int duration) {int total=0;total+=duration;for(int i=1;i<timeSeries.size();i++){int x=timeSeries[i]-timeSeries[i-1];//计算中毒时间的差值来判断中毒伤害的叠加if(x<duration) total+=x;else total+=duration;}//total+=3;return total;}
};

第三题 字形变换

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

class Solution {
public:string convert(string s, int numRows) {if(numRows==1) return s;//这里不进行特判一定会超时string ret;int d=(numRows-1)*2;//画图观察第一行的间距差for(int i=0;i<s.size();i+=d)//先处理第一行{ret+=s[i];}int y=d-1;//第i行第二个数字for(int i=1;i<numRows-1;i++)//第i行,是numsRows而不是s数组的size{for(int j=i,k=d-j;j<s.size()||j<s.size();j+=d,k+=d)//此处一共需要两组数据,特别注意{if(j<s.size())ret+=s[j];if(k<s.size())ret+=s[k];}}for(int i=numRows-1;i<s.size();i+=d){ret+=s[i];}return ret;}
};// class Solution {
// public:
//     string convert(string s, int numRows) {
//         if (numRows < 2)
//             return s;
//         vector<string> rows(numRows);
//         int i = 0, flag = -1;
//         for (char c : s) {
//             rows[i].push_back(c);
//             if (i == 0 || i == numRows -1)
//                 flag = - flag;
//             i += flag;
//         }
//         string res;
//         for (const string &row : rows)
//             res += row;
//         return res;
//     }
// };

 

 

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"模拟算法及其优化":http://eshow365.cn/6-26439-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!