【C++算法】模拟算法

server/2024/11/13 8:06:05/

替换所有的问号

  • 题目链接

替换所有的问号icon-default.png?t=O83Ahttps://leetcode.cn/problems/replace-all-s-to-avoid-consecutive-repeating-characters/description/

  • 算法原理

  • 代码步骤
class Solution {
public:string modifyString(string s) {int n = s.size();for(int i = 0; i < n; i++){if(s[i] == '?'){for(int j = 'a'; j <= 'z'; j++){if((i == 0 || s[i - 1] != j) && (i == n - 1 || s[i + 1] != j)){s[i] = j;break;}}}}return s;}
};

提莫攻击

  • 题目链接

提莫攻击icon-default.png?t=O83Ahttps://leetcode.cn/problems/teemo-attacking/description/

  • 算法原理

  • 代码步骤
class Solution {
public:int findPoisonedDuration(vector<int>& timeSeries, int duration) {int ret = 0;for(int i = 1; i < timeSeries.size(); i++){int x = timeSeries[i] - timeSeries[i - 1];if(x >= duration) ret += duration;else ret += x;}return ret + duration;}
};

Z字形变换

  • 题目链接

Z字型变换icon-default.png?t=O83Ahttps://leetcode.cn/problems/zigzag-conversion/description/

  • 算法原理

  • 代码步骤
class Solution {
public:string convert(string s, int numRows) {if(numRows == 1){return s;}int n = s.size();int d = 2 * numRows - 2;string ret;// 第一行for(int i = 0;i < n; i += d){ret += s[i];}// 中间行for(int i = 1; i < numRows - 1; i++){for(int j = i, k = d - i; j < n || k < n; j += d, k += d){if(j < n) ret += s[j];if(k < n) ret += s[k];}}// 最后一行for(int i = numRows - 1; i < n; i += d){ret += s[i];}return ret;}
};

外观数列

  • 题目链接

外观数列icon-default.png?t=O83Ahttps://leetcode.cn/problems/count-and-say/description/

  • 算法原理

  • 代码步骤
class Solution {
public:string countAndSay(int n) {string s = "1";for(int i = 2; i <= n; i++){string tmp;for(int left = 0, right = 0; right < s.size(); ){while(right < s.size()){if(s[left] != s[right]) break;right++;}tmp += to_string(right - left) + s[left];left = right;}s = tmp;}return s;}
};

数青蛙

  • 题目链接

数青蛙icon-default.png?t=O83Ahttps://leetcode.cn/problems/minimum-number-of-frogs-croaking/description/

  • 算法原理

  • 代码步骤
class Solution {
public:int minNumberOfFrogs(string croakOfFrogs) {string s = "croak";int n = s.size();vector<int> ret(n);// 哈希找下表unordered_map<char, int> hash;for(int i = 0; i < n; i++){hash[s[i]] = i;}for(auto ch : croakOfFrogs){if(ch == 'c'){if(ret[n - 1] != 0){ret[n - 1]--;ret[0]++;}else{ret[0]++;}}else{if(ret[hash[ch] - 1] != 0){ret[hash[ch] - 1]--;ret[hash[ch]]++;}else{return -1;}}}for(int i = 0; i < n - 1; i++){if(ret[i] != 0) return -1;}return ret[n - 1];}
};

http://www.ppmy.cn/server/119197.html

相关文章

微调框QSpinBox

作用&#xff1a;允许用户按照一定的步长&#xff0c;来增加或减少其中显示的数值 有两种类型的微调框 QSpinBox - 用于整数的显示和输入QDoubleSpinBox - 用于浮点数的显示和输入 值 包括最大值、最小值、当前值 // 获取和设置当前值 int value() const void setValue(in…

Qt 模型视图(二):模型类QAbstractItemModel

文章目录 Qt 模型视图(二)&#xff1a;模型类QAbstractItemModel1.基本概念1.1.模型的基本结构1.2.模型索引1.3.行号和列号1.4.父项1.5.项的角色1.6.总结 Qt 模型视图(二)&#xff1a;模型类QAbstractItemModel ​ 模型/视图结构是一种将数据存储和界面展示分离的编程方法。模…

Laya2.x出包alipay小游戏

小游戏开发者工具&#xff0c;支付宝官方已经出了&#xff0c;不说了。 1.LAYA2.X打出得小游戏包中my-adapter.js这个文件需要替换&#xff0c;或者自行修改&#xff0c;替换3.x得&#xff1b; 2.unity导包出得模型文件命名需要注意&#xff0c;避免太长&#xff0c;路径也不…

敏感个人信息识别指南正式版发布,个人信息保护合规要求更明确

9月14日&#xff0c;全国网络安全标准化技术委员会秘书处发布《网络安全标准实践指南——敏感个人信息识别指南》。 2020 年发布的国标文件 GB/T 35273《信息安全技术 个人信息安全规范》中提到关于敏感个人信息的示例&#xff0c;本次公开的《敏感个人信息识别指南》详细规定了…

黑神话悟空mac可以玩吗

黑神话悟空mac上能不能玩对于苹果玩家来说很重要&#xff0c;那么黑神话悟空mac可以玩吗&#xff1f;目前是玩不了了&#xff0c;没有针对ios系统的版本&#xff0c;只能之后在云平台上找找了&#xff0c;大家可以再观望下看看。 黑神话悟空mac可以玩吗 ‌使用CrossOver‌&…

SpringBoot2:web开发常用功能实现及原理解析-上传与下载

文章目录 一、上传文件1、前端上传文件给Java接口2、Java接口上传文件给Java接口 二、下载文件1、前端调用Java接口下载文件2、Java接口下载网络文件到本地3、前端调用Java接口下载网络文件 一、上传文件 1、前端上传文件给Java接口 Controller接口 此接口支持上传单个文件和…

CSS传统布局方法(补充)——WEB开发系列37

开发技术不断演进&#xff0c;布局方式也经历了多个阶段的变革。从最初的基于表格布局到 CSS 的浮动布局&#xff0c;再到今天的弹性盒&#xff08;Flexbox&#xff09;与 CSS Grid 网格布局&#xff0c;每一种布局方式都有其独特的背景和解决特定问题的优势。 一、CSS Grid 出…

详解x86汇编指令:test edx, edx

前言 有不少新手在学习汇编指令的时候可能会被网上一些人误导&#xff08;很显然我就被误导了&#xff09;&#xff0c;认为test与cmp指令相同&#xff0c;都是在比较两个值是否相同的&#xff0c;那么来看这两个指令&#xff1a; test edx,edx jne 0040BCA3jne 指令为不等于0…