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

模拟-6.N字形变换-力扣(LeetCode)

一、题目解析

1、将字符串s从上到下 ,从左往右Z字形排列

2、固定行数,按行数从左往右,从上往下得到新字符串

二、算法原理

解法1:模拟

模拟顾名思义,模拟题目的运行过程

解法2:找规律

在模拟的基础上,我们可以通过找规律优化时间复杂度和空间复杂度

根据总结的规律我们可以将其分为三个循环解决,第一个循环解决第0行,双重循环解决中间行,最后一个循环解决第numRows-1, 以及需要注意细节问题,即中间行排列过后不一定成对出现,所以在第二层循环处对于判断要用||,而且还需要判断是否越界

三、代码示例

解法2:

class Solution {
public:string convert(string s, int numRows){if(numRows == 1) return s;int d = 2*numRows-2;string ret;for(int i = 0;i<s.size();i+=d) ret += s[i];//第1行for(int i = 1;i<numRows-1;i++)//中间行{for(int j = i,k = d-i;j<s.size() || k<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;}
};

 

看到最后,如果对您有所帮助,还请点赞、收藏和关注,我们下期再见!

http://www.dtcms.com/a/312837.html

相关文章:

  • GPIO交换矩阵和IO_MUX
  • Python Seaborn【数据可视化库】 全面讲解
  • node.js常用函数
  • web前端React和Vue框架与库安全实践
  • Elastic 9.1/8.19:默认启用 BBQ,ES|QL 支持跨集群搜索(CCS)正式版,JOINS 正式版,集成 Azure AI Foundry
  • Python爬虫实战:研究awesome-python工具,构建技术资源采集系统
  • 【C语言】结构体详解
  • 第15届蓝桥杯Scratch图形化国赛初/中级组2024年9月7日真题
  • 使用DrissionPage实现xhs笔记自动翻页并爬取笔记视频、图片
  • 禁闭求生2 免安 中文 离线运行版
  • 初识prometheus
  • 控制建模matlab练习04:二阶系统的时域响应
  • Supergateway教程
  • 前端技术制作简单网页游戏
  • 力扣457:环形数组是否存在循环
  • 【Excel】利用函数和Power Query进行数据分析
  • Java企业级应用性能优化实战
  • 控制建模matlab练习09:超前补偿器
  • K8S部署ELK(四):部署logstash
  • 使用trae进行本地ai对话机器人的构建
  • 【LLM】 BaseModel的作用
  • 《软件测试与质量控制》实验报告三 系统功能测试
  • Tomcat访问Controller的内部实现原理
  • 批发订货系统:私有化部署与源代码支持越来越受市场追捧
  • 【Android】RecyclerView循环视图(2)——动态加载数据
  • IntelliJ IDEA开发编辑器摸鱼看股票数据
  • git用户设置
  • LangChain4J入门:使用SpringBoot-start
  • 【abc417】E - A Path in A Dictionary
  • template<typename R = void> 意义