博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]ZigZag Conversion
阅读量:2236 次
发布时间:2019-05-09

本文共 846 字,大约阅读时间需要 2 分钟。

解题思路:
1,这个问题直接看会比较复杂,要分解为简单的问题;
2,把 Z 的那一“斜杠”去掉,这个问题就简单了很多,就是一个串字符按照“ 竖”着的方式再排列;
3,对于那个“斜杠”来说,除了第一行和最后一行,每次取了一个字符放在“竖杠”上之后,都要再取一个字符放在“斜杠”上。
边界条件:nRows <= 1 或着 s.length() < nRows, 这样的条件直接不用变换了
前条件:按行遍历;每一行,按一定的interval遍历
不变式:每一次计算得到的 index都要保证小于 s.length()

结束条件:遍历完所有行 

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

转载地址:http://njpbb.baihongyu.com/

你可能感兴趣的文章
PLSQL常用方法汇总
查看>>
几个基本的 Sql Plus 命令 和 例子
查看>>
PLSQL单行函数和组函数详解
查看>>
Oracle PL/SQL语言初级教程之异常处理
查看>>
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>
Oracle PL/SQL语言初级教程之表和视图
查看>>
Oracle PL/SQL语言初级教程之完整性约束
查看>>
PL/SQL学习笔记
查看>>
如何分析SQL语句
查看>>
结构化查询语言(SQL)原理
查看>>
SQL教程之嵌套SELECT语句
查看>>
日本語の記号の読み方
查看>>
计算机英语编程中一些单词
查看>>
JavaScript 经典例子
查看>>
判断数据的JS代码
查看>>
js按键事件说明
查看>>
AJAX 初次体验!推荐刚学看这个满好的!
查看>>
AJAX 设计制作 在公司弄的 非得要做出这个养的 真晕!
查看>>