zoukankan      html  css  js  c++  java
  • ZigZag Conversion

    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".

    public class Solution {
        public String convert(String s, int numRows) {
            char[] c = s.toCharArray();
            int len = c.length;
            StringBuffer[] sb = new StringBuffer[numRows];
            for(int i =0 ;i<numRows;i++)
            {
                sb[i]=new StringBuffer();
            }
            
            int i = 0;
            while(i<len)
            {
                for(int idx=0;idx<numRows&&i<len;idx++)
                {
                    sb[idx].append(c[i++]);
                }
                for(int idx=numRows-2;idx>=1&&i<len;idx--)
                {
                    sb[idx].append(c[i++]);
                }
            }
            for (int idx = 1; idx < sb.length; idx++)
            sb[0].append(sb[idx]);
            return sb[0].toString();
            
        }
    }
  • 相关阅读:
    A1132 Cut Integer (20分)
    A1131 Subway Map (30分)
    A1130 Infix Expression (25分)
    A1129 Recommendation System (25分)
    A1128 N Queens Puzzle (20分)
    arm指令集
    韦东山视频地址
    汇编知识
    emacs 使用教程
    ip
  • 原文地址:https://www.cnblogs.com/hygeia/p/5453689.html
Copyright © 2011-2022 走看看