zoukankan      html  css  js  c++  java
  • 6. Z 字形变换

    将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列

    输入: s = "LEETCODEISHIRING", numRows = 4
    输出: "LDREOEIIECIHNTSG"
    解释:
    
    L     D     R
    E   O E   I I
    E C   I H   N
    T     S     G
     1 public class ZigZagConversion {
     2     //按照行顺序依次读取,读完第一行,然后第二行,直至第numRows行,每一个位置的元素可以根据行号确定在字符串中序号
     3     public String convert(String s, int numRows) {
     4         if(numRows == 1) {
     5             return s;
     6         }
     7         int len = s.length();
     8         int index = 2 * numRows - 2;  
     9         StringBuilder sb = new StringBuilder();
    10         for(int i=0; i<numRows; i++) {
    11             for(int j=0; j+i<len; j += index) {
    12                 sb.append(s.charAt(j+i));    //j+i,对于所的行,任意的满列(代表Z字形的横)之间元素序号满足该关系式
    13                 if(i!=0 && i!=(numRows-1)  && 
    14                         (j+index-i)<len) {  //j+index-i,对于非首尾行,还包含非满列(代表Z字形的斜杠)元素,元素序号满足该关系式
    15                     sb.append(s.charAt(j+index-i));
    16                 }
    17             }            
    18         }
    19         return sb.toString();
    20     }
    21 }
    无论有多困难,都坚强的抬头挺胸,人生是一场醒悟,不要昨天,不要明天,只要今天。不一样的你我,不一样的心态,不一样的人生,顺其自然吧
  • 相关阅读:
    Java基础---多线程
    Java基础---多态、内部类、异常、包
    Java基础---继承、抽象、接口
    Java基础---面向对象
    NSOperation使用
    根据两个日期计算相差的年月日
    代理模式简单说明
    Lua程序设计入门
    zmq-ios framwork
    cocoapods安装与使用
  • 原文地址:https://www.cnblogs.com/xiyangchen/p/10891210.html
Copyright © 2011-2022 走看看