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

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

这道题其实有两个思路

思路一:按顺序把每个字母分配到对应的行,再把行联接起来。具体是用一个string array来代表每一行,用一个current_row来记住现在的行数,然后用go记住方向,向下就是+1,向上就是-1,这样可以不停的运算更新current_row, 在顶行和底行反转go。

class Solution:    def convert(self, s, numRows):        """        :type s: str        :type numRows: int        :rtype: str        """        if len(s) == 0 or numRows <= 1:            return s                row_list = ["" for x in range(numRows)]        current_row = 0        go = -1                for c in s:            row_list[current_row] += c            if (current_row == 0 or current_row == numRows-1):                go = -go            current_row += go                    rst = ""            for row in row_list:            rst += row        return rst

 

思路二:就是直接算出下一个字母是哪一个。size是numRows-2,between就是numRows+size = 2*numRows-2 

class Solution {    public String convert(String s, int numRows) {        if (numRows <= 1) {            return s;        }        StringBuilder rst = new StringBuilder();        int size = 2 * numRows - 2;          for (int i = 0; i < numRows; i++) {            for (int j = i; j < s.length(); j += size) {                rst.append(s.charAt(j));                int between = j + size - 2 * i;                if(i != 0 && i != numRows - 1 && between < s.length()){
//except the first row and the last row rst.append(s.charAt(between)); } } } return rst.toString(); }}

 

个人觉得其实第二个方法比较不好像,第一个方法反而比较直观。

转载于:https://www.cnblogs.com/codingEskimo/p/9639381.html

你可能感兴趣的文章
EBS12.2.5 升级到EBS12.2.6的问题及跟踪处理
查看>>
网站访问流程
查看>>
java的日志工具log4j的配置方法
查看>>
jQuery on()方法
查看>>
步调一致才能得胜利
查看>>
mysql 锁机制
查看>>
add_header X-Frame-Options "SAMEORIGIN";NGINX
查看>>
linux中的计划任务
查看>>
Android style报错
查看>>
Lintcode130 Heapify solution 题解
查看>>
【Map】Map、HashMap
查看>>
解决纯数字字符串在js方法参数中不稳定或被截取的问题
查看>>
如何在VMware安装Windows系统
查看>>
阶段性理解phantomjs/selenium/casperjs
查看>>
Java中高级开发工程师是什么技术水平(附28套Java进阶+高级视频教程)
查看>>
sudo命令
查看>>
第十九章 文本处理流编辑器:awk编程
查看>>
Xtrabackup+Rsync 备份数据库并同步到远端备份机
查看>>
activiti实战读书笔记——第九章 多实例
查看>>
php返回相对时间(如:20分钟前,3天前)的方法
查看>>