好久没刷leet了,最近想着把以前遗留的题重新刷一下。

这道折线排列字符的题目记得是刚开始刷leet的时候,对leet的难度和规律还没有映像,当时觉得很难而且理解还有误区(英语理解不准确),导致写了好大一段代码最后还是deny。

现在重新看了一下,发现其实是个数学题,大致规律就是相邻两竖线中同列两字符的差值一定等于(numRows - 1)*2,如果其两字符中间有间隔字符的话,这些间隔字符的间距和一定等于(numRows - 1)*2,有点类似上半边三角形+下半边三角形=整三角形。找出了数学规律再编程就不难了。

贴出AC代码一目了然:

char *fixed_convert(char* s, int numRows) {if (numRows == 1)return s;char *result = NULL;int length = (int)strlen(s);result = (char *)calloc(length + 1, sizeof(char));int strIndex = 0, r_column = 0, r_index = 0;bool firstIn = true;for (int i = 0; i < numRows; i++) {r_index = 0, firstIn = true;while (strIndex < length) {if (firstIn) {r_column = i;firstIn = false;}else if ( ((r_index % 2 == 1)||(i == 0)) && (i < numRows - 1) )r_column += (numRows - i - 1) * 2;else if (r_index % 2 == 0 || i == numRows - 1)r_column += i * 2;if (r_column >= length)break;result[strIndex] = s[r_column];strIndex++;r_index++;}}result[length] = '\0';return result;
}

6-e-ZigZag Conversion相关推荐

  1. ZigZag Conversion

    ZigZag Conversion 1. Question 给定行数,将某字符串转换为zigzag形式,然后按行输出.zigzag形式如: The string "PAYPALISHIRIN ...

  2. [LeetCode题解] ZigZag Conversion

    原文在这,可以来我blog翻翻哦. 第二天.今天AC掉了一道之前没AC掉的题目... 今天的题目是6. ZigZag Conversion 题目描述: The string "PAYPALI ...

  3. [LeetCode]ZigZag Conversion

    题目:ZigZag Conversion 一串字符按照Z字形的数组给了我们,要求转成原本的顺序. 思路: 统计"|/"的个数: 竖着的和斜着的下标有对应关系: 竖着的:k = j* ...

  4. leetCode 6. ZigZag Conversion 字符串 (上传费劲)

    6. ZigZag Conversion 题目:https://leetcode.com/problems/zigzag-conversion/ 1 2 3 4 5 6 7 8 9 10 11 12 ...

  5. [勇者闯LeetCode] 6. ZigZag Conversion

    [勇者闯LeetCode] 6. ZigZag Conversion Description The string "PAYPALISHIRING" is written in a ...

  6. 6——ZigZag Conversion

    六.ZigZag Conversion 锯齿变换 题目大意:输入一个字符串和int型(锯齿层数) 将字符串以锯齿变化重新排序 例: "HAIZEIKEJILAOCHUANZHANG" ...

  7. 6. ZigZag Conversion

    题目: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows l ...

  8. LeetCode 6. ZigZag Conversion

    原题链接在这里:https://leetcode.com/problems/zigzag-conversion/ 题目: The string "PAYPALISHIRING" i ...

  9. 蜗牛慢慢爬 LeetCode 6. ZigZag Conversion [Difficulty: Medium]

    题目 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows li ...

  10. ZigZag Conversion leetcode java

    题目: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows l ...

最新文章

  1. 利用OpenCV进行图像的轮廓检测
  2. c语言单片机求最小公倍数,单片机常用的14个C语言算法,要熟记在心哦!
  3. ASP.NET 2.0中改变passwordrecovery发邮件时的信息
  4. 猜想:汇编指令push和pop对sp的处理顺序缘由
  5. oppoJava面试!传智播客java基础案例教程
  6. Scala 入门3(类、Trait、模式匹配、正则、异常、提取器、IO)
  7. 高效幂运算(JAVA)--拆分解法、二进制解法
  8. Varnish的相关知识,varnish的简单应用
  9. 传统ORB-SLam中位姿优化中雅克比矩阵讲解
  10. ajax加php做的简单登录注册,简单示例AJAX结合PHP代码实现登录效果代码
  11. Hive窗口函数应用:级联累加求和场景
  12. win10自带虚拟机 Hyper-V下载和安装linux系统
  13. java adobe pdf转word_ADOBE READER把PDF转换成WORD教程
  14. android u盘怎么打开文件夹图标不显示不出来了,如何解决U盘图标不显示但资源管理器中还能看到U盘...
  15. py实现外星人入侵(二次开发)——2.添加音乐
  16. html samp如何转成块,HTML code|kbd|samp|var程序标签应用说明-立地货
  17. 探索鼎龙湾德萨斯牛仔小镇,欣赏粤西非遗文化的魅力
  18. adb进阶知识,如何过滤只查看某一个app的日志
  19. 20189200余超 2018-2019-2 移动平台应用开发实践第十一周作业
  20. Windows 10 下安装pycrypto时出错的解决问题

热门文章

  1. 一名 vueCoder 总结的 React 基础
  2. ubuntu系统支持GIGABYTE X570 I AORUS PRO WIFI主板温度及风扇转速检测
  3. 一母同源,荣耀和华为的区别在哪里?
  4. 论文阅读《Revisiting Stereo Depth Estimation From a Sequence-to-Sequence Perspective with Transformers》
  5. ##(两个井号)和#(一个井号)都是什么意思
  6. 使用gftp将ubuntu生成的可执行文件copy到开发板
  7. 【数据库】数据库之存储引擎
  8. JavaScript(15) jquery循环方法
  9. librosa出现OSError: sndfile library not found
  10. 除了音乐和养猪,网易更懂培养人才