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

cms网站开发流程快速排名官网

cms网站开发流程,快速排名官网,中国建设投资集团有限公司,广州商砼建站规范个人主页:Lei宝啊 愿所有美好如期而遇 题目链接 . - 力扣(LeetCode) 输入描述 string convert(string s, int numRows),输入一个字符串s,以及一个行数numRows,将字符串按照这个行数进行Z字形排列&…

 个人主页:Lei宝啊 

愿所有美好如期而遇 


题目链接

. - 力扣(LeetCode)

输入描述

string convert(string s, int numRows),输入一个字符串s,以及一个行数numRows,将字符串按照这个行数进行Z字形排列,实际上本题是将Z字形反转成了N字形

输出描述

按照行将Z字形排列的字符打印出来。

算法分析

模拟算法,实际上就是根据题目要求做,优化就是找规律。

本道题,我们将通过画图来找规律,以示例二为例画图:

找规律,这没有什么比较好的方法,找得到就是找得到,根据图我们可以发现第一行和最后一行每个元素的下标差了6,也就是说公差为6,而中间行的元素,虽然也遵循这个规律,不过是两个数字两个数字这样来进行的--1+6=7  5+6=11。

那么如何计算公差,你说公差是6就是了吗?我们可以多画几个图来进行验证,最后我们可以得到的结论是公差d = 2 * 行数 - 2

对于第一行和最后一行而言,我们可以直接使用公差进行计算,而对于中间行来说,需要两个数字一起向后走,那么我们怎样得到第二个数字呢?观察后我们可以发现,这两个数字的下标加起来正好是公差d,所以我们可以用公差 - 下标一 = 下标二,后面的下标我们通过公差就可以得到了。

我们也就可以按照这样的规律,让下标和字母进行对应,直接把字符尾插进我们创建的string s变量中。

解题源码 

class Solution {
public:string convert(string s, int numRows) {if(numRows == 1) return s;string ret;int d = 2 * numRows - 2;int len = s.size();for(int i=0; i<len; i+=d) ret += s[i];for(int i=1; i<numRows-1; i++){for(int j=i, k=d-i; j<len || k<len; j+=d, k+=d) {if(j<len) ret += s[j];if(k<len) ret += s[k]; }                  }for(int i=numRows-1; i<len; i+=d)  ret += s[i];return ret;}
};

http://www.hengruixuexiao.com/news/42530.html

相关文章:

  • 做百度网站排名软件百度推广费用
  • 有没有教做韩餐的网站seo网络优化推广
  • 深圳罗湖区网站建设公司seo网络推广案例
  • 最好的韩国服务器电商seo优化是什么
  • 用dw做的网站怎么发布到网上seo搜索引擎优化视频
  • 刚创业 建网站深圳网络营销和推广方案
  • wordpress多站点搭建淘宝一个关键词要刷多久
  • 一个好的网站需要具备什么百度点击率排名有效果吗
  • 动态网站开发常见语言企业营销策划书范文
  • 八亿建站软文文章
  • logo一键生成器免费版原型图seo外链招聘
  • 做网站和软件有区别吗餐饮营销引流都有什么方法
  • 可以做国外购物的网站大数据营销的案例
  • 爱是做的电影网站搜索引擎优化英文简称为
  • 网站产品展示怎么做广告软文范例大全100字
  • 二手优品哪个网站做企业建站模板
  • 推荐扬中网站建设广州网站开发多少钱
  • 淘宝做推广网站seo分析工具有哪些
  • 有域名怎么做公司网站关键词挖掘查询工具
  • 网站推广的方法ppt哪个浏览器不屏蔽网站
  • 鼎湖网站建设直接下载app
  • 长春专业网站建设价格武汉做搜索引擎推广的公司
  • 网站首页被挂黑链电商的运营模式有几种
  • 三水靠谱网站建设产品软文怎么写
  • 申请网站价格网络推广外包流程
  • 2023网络营销成功案例seo优化师就业前景
  • 武汉城市建设招标网站yandex引擎
  • 微信导航网站怎么做的百度账号登录中心
  • 企业网站做的比较好企业网页
  • 郑州网站设计制作营销qq