博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Leetcode】6. ZigZag Conversion
阅读量:5999 次
发布时间:2019-06-20

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

1. 题目

The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

P A H N

A P L S I I G
Y I R
And then read line by line: "PAHNAPLSIIGYIR"
Write the code that will take a string and make this conversion given a number of rows:

string convert(string text, int nRows);

convert("PAYPALISHIRING", 3) should return "PAHNAPLSIIGYIR".

2. 思路

按规则计算每行的下标顺序进行打印即可。

首行和末行可以同质对待,但是会有下标重叠,进行一下特殊处理即可。

3. 代码

耗时:16ms

class Solution {public:    string convert(string s, int numRows) {        int len = s.length();        if (numRows <= 1 || len <= numRows) {            return s;        }        string so;        so.resize(len);        so = "";        int l = numRows * 2 - 2;        for (int ri = 0; ri < numRows; ri++) {            int i = 0;            int last = -1;            while (true) {                int base = i * l;                int p1 = base + ri;                int p2 = base + l - ri ;                if (p1 < len && p1 != last) so += s[p1];                if (p2 < len && p2 != p1) so += s[p2];                i++;                last = p2;                if (p2 >= len) break;            }        }        return so;    }};

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

你可能感兴趣的文章
树莓派上自动下载py3.5安装shell脚本
查看>>
py正则分析日志 自己用的
查看>>
网站安装打包 软件环境检测与安装[二] 上
查看>>
Qt 有多少人折腾-qt for s60终于安装成功
查看>>
GO 相关资料文档
查看>>
Linux下编译安装PCRE库
查看>>
MAC 中Parallels Desktop 安装Linux
查看>>
jQuery教程:教你打造20个超级酷的视觉效果
查看>>
element ui用户头像上传
查看>>
看 37signals 如何招聘 UI 设计师
查看>>
组合问题, 给定字符集,输出特定长度的字符组合。
查看>>
判断输入是否是二元查找树
查看>>
移动端兼容性问题解决方案
查看>>
The web application [] appears to have started ...
查看>>
linux下安装ThinkJS和Forever
查看>>
SQL Server报错汇总
查看>>
剑指OFFER之二叉搜索树与双向链表(九度OJ1503)
查看>>
convirt二次开发
查看>>
关于IE6幽灵字体
查看>>
少干爹的 d语言的总结
查看>>