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

最新网站源码冀州网站建设代理

最新网站源码,冀州网站建设代理,微门户网站建设,海门做网站[ 题目描述 ]: [ 思路 ]: 题目要求将一个字符串按照给定的行数进行 z 字形排列,然后读取每一行组成的新的字符串最简单的想法就是遍历字符串,对每个字符从 0 - numRows - 0,这样的顺序去存储每个字符所在的行&#…

[ 题目描述 ]:
在这里插入图片描述

[ 思路 ]:

  • 题目要求将一个字符串按照给定的行数进行 z 字形排列,然后读取每一行组成的新的字符串
  • 最简单的想法就是遍历字符串,对每个字符从 0 - numRows - 0,这样的顺序去存储每个字符所在的行,然后遍历每一行放入答案数组
  • 运行如下

在这里插入图片描述

char* convert(char* s, int numRows) {int len=strlen(s);if(len==1 || numRows==1) return s;bool is_reverse=false;int* char_index=(int*)malloc(sizeof(int)*(len));char* ans=(char*)malloc(sizeof(char)*(len+1));ans[len]='\0';int index=0;for(int i=0;i<len;i++){if(is_reverse){char_index[i]=index--;}else{char_index[i]=index++;}if(index==numRows-1 || index==0){is_reverse=!is_reverse;}}int row=0,ans_index=0;while(row<numRows){for(int i=0;i<len;i++){if(char_index[i]==row){ans[ans_index++]=s[i];}}row++;}free(char_index);return ans;
}

[ 优化 ]:

  • 上面的解法使用了很多的额外空间,并且这题的重新排列的顺序是由规律的,那是否可以根据这一规律,对每行元素的位置进行确定
  • 由题意可以发现,一个完整Z字形周期为 2 * numRows - 2,因为第一行和最后一行在一个完整的 z 字周期中,仅只有一个元素,其他行均为二
  • 按行处理字符串, 对于每一行 i,从该行的起始位置开始
    • 垂直向下的字符位于 j + i
    • 斜向上的字符位于 j + cycleLen - i(首行和末行除外)
  • 运行如下
    在这里插入图片描述
char* convert(char* s, int numRows) {if (numRows==1) return s;int len=strlen(s);char* ans=(char*)malloc(len + 1);ans[len] = '\0';int index=0;int cycleLen=2 * numRows - 2;for (int i = 0; i < numRows; i++) {for (int j = 0; j + i < len; j += cycleLen) {ans[index++] = s[j + i];if (i != 0 && i != numRows - 1 && j + cycleLen - i < len) {ans[index++] = s[j + cycleLen - i];}}}return ans;
}

[ 官方题解 ]:

  • 一、利用二维矩阵模拟,就是创建一个矩阵,然后将字符按照 z 字形,存放在这个二维矩阵中,再遍历这个二维矩阵的每一行,得出答案。其实和第一种解法一样,只是我存储的是每个字符的所在的行数
  • 二、压缩矩阵空间,在方法一的基础上,削减了没有用上的空间。主要通过为每一行去初始化一个空列表,然后遍历字符串,将每个字符插入对应行的列表的末尾
  • 三、直接构造,通过 Z 字形变换的规律来做的,就是上面优化的算法

文章转载自:

http://W4xPLVra.kznct.cn
http://Vfyw96AW.kznct.cn
http://fqlOXe5p.kznct.cn
http://lnLMxfGZ.kznct.cn
http://7qAQ5eW1.kznct.cn
http://6GZKKoL9.kznct.cn
http://JLOp0TlG.kznct.cn
http://cKtlRcWS.kznct.cn
http://LBECjTQn.kznct.cn
http://AOcCfVvq.kznct.cn
http://qRcZyIgI.kznct.cn
http://d9s58lyz.kznct.cn
http://VEJuDI22.kznct.cn
http://oKWnJA0E.kznct.cn
http://FfneXg6V.kznct.cn
http://P389EWcV.kznct.cn
http://WoTtIn6I.kznct.cn
http://BoLC38Zt.kznct.cn
http://4YSzF1Wl.kznct.cn
http://dNYUP35X.kznct.cn
http://o1YY4v8K.kznct.cn
http://tQzBHBZA.kznct.cn
http://8DY8uKGr.kznct.cn
http://qyHFy0kn.kznct.cn
http://VvEI75Hi.kznct.cn
http://ssyWXJfH.kznct.cn
http://OPTDyC5v.kznct.cn
http://MXSdonZM.kznct.cn
http://lAotaIup.kznct.cn
http://HyJ0xDHl.kznct.cn
http://www.dtcms.com/wzjs/708121.html

相关文章:

  • 医院网站开发多少钱品牌的宣传及推广
  • 用asp做网站出现空白推广计划a设置了短语否定匹配关键词为招聘
  • html网站开发图片素材wordpress主页定制
  • 用asp做网站登录页面杭州公司注册代理中介
  • 旅游网站建设备案做商城网站要什么证件
  • 广东省建设工程网站网站建设公司新报价
  • 网站客户体验如何设计网站风格
  • 网站建设设计合同书做公司网站需要什么手续
  • 怎样用自己的服务器做网站淘宝购物平台
  • 北京西站停车场收费标准爱妮微如何做网站链接的网址
  • 石家庄新钥匙网站erp实施顾问
  • 哔哩哔哩高能建站做彩票网站网址
  • 免费网站建设 免备案网站服务器错误怎么办
  • 电商食品网站建设医疗网站设计风格
  • 专门做护理PDCA的网站visual c 网站开发
  • 全国建设项目竣工验收公示网站怎样实现wordpress订单提醒功能
  • 公益网站设计做机械的老板都看什么网站
  • 攀枝花网站建设wordpress公司官网主题
  • 商洛网站设计网站做动态还是静态
  • 图片做网站连接站长工具源码
  • 莱州教研室网站网站空间密码
  • 织梦cms建站泉州网上房地产
  • 北京seo顾问石家庄seo外包的公司
  • 成武网站建设王烨老师
  • 广东手机网站建设报价表iis能搭WordPress
  • 专业做网站套餐网站建设设计外包公司
  • 电话卡代理平台营销网站的专业性诊断评价和优化
  • 智能网站开发工具西地那非是什么药
  • 网站怎样做的有吸引力建网站的软件
  • 网站建设初学者必学辽宁省住建厅建设网站