当前位置: 首页 > news >正文

【优选算法】模拟 问题算法

​一:替换所有的问号

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]) || ( i>0 && i<n-1 && ch != s[i-1] && ch != s[i+1])){s[i] = ch;break;}}}}return s;}
};

二:提莫攻击

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字形变换

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

四:外观数列

class Solution {
public:string countAndSay(int n) {string ret = "1";for(int i = 1; i < n; i++){string tmp;int len = ret.size();for(int left = 0, right = 0; right < len; ){while(right < len && ret[left] == ret[right])right++;tmp += to_string(right-left) + ret[left];left = right;}ret = tmp;}return ret;}
};

五:数青蛙​

class Solution {
public:int minNumberOfFrogs(string croakOfFrogs) {string t = "croak";int n = t.size();// 使用数组来模拟哈希表vector<int> hash(n);// 使用 map 来表示 字符的下标unordered_map<char, int> char_Index;for(int i = 0; i < n; i++)char_Index[t[i]] = i;// 开始操作for(auto& ch : croakOfFrogs){if(ch == 'c'){if(hash[n-1] != 0)hash[n-1]--;        // 一个青蛙叫完之后,继续叫hash[0]++;}else{int i = char_Index[ch]; // 找到当前字符的位置if(hash[i-1] == 0) return -1;hash[i-1]--;hash[i]++;}}for(int i = 0; i < n-1; i++){if(hash[i] != 0)return -1;}return hash[n-1];}
};
http://www.xdnf.cn/news/937171.html

相关文章:

  • CompletableFuture+线程池使用案列
  • 直观地理解程序的堆和栈
  • Go 语言中的内置运算符
  • LLMs之Structured Output:vLLM 结构化输出指南—从约束生成到自动解析与高效实现
  • 算法工程师认知水平要求总结
  • (javaEE)网络原理-初识 局域网和广域网 ip地址和端口号 协议 五元组 协议分层 OSI七层模型 网络数据通信的基本流程
  • (二)原型模式
  • AI短视频创富营
  • Go语言系统监控实战:gopsutil库全面解析与应用
  • nginx部署
  • K8S认证|CKS题库+答案| 8. 沙箱运行容器 gVisor
  • 安装Openstack
  • 编程技巧(基于STM32)第二章 全功能按键非阻塞式实现按键单击、双击和长按
  • 【agent开发】VS Code连接WSL失败解决
  • 实验一:数据选择器实验
  • Go语言中的if else控制语句
  • DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
  • masm32汇编实现扫雷进程注入
  • 第1课、LangChain 介绍
  • 算法-数论
  • Java线程池核心原理与最佳实践
  • 永磁同步电机参数辨识算法--IPMSM拓展卡尔曼滤波全参数辨识
  • 73常用控件_QFormLayout的使用
  • 一个自动反汇编脚本
  • 深度学习入门Day3--鱼书学习(2)
  • 前端十种排序算法解析
  • 电压型PHY芯片MDI接口设计
  • 计算机网络笔记(二十九)——5.1运输层协议概述
  • QT线程同步 QReadWriteLock并发访问
  • xtp+ctp 交易系统接口简介