zoukankan      html  css  js  c++  java
  • 6. 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) {
            int pStr = 0;
            String ret = "";
            String[] graph = new String[numRows];
            for(int i = 0; i < numRows; i++){
                graph[i] = "";
            }
            
            while(pStr < s.length()){
                for(int i = 0; i < numRows; i++){
                    graph[i] += s.charAt(pStr++); 
                    if(pStr >= s.length()) break;
                }
                if(pStr >= s.length()) break;
                
                for(int i = numRows-2; i > 0; i--){ //even column, 2 element shorter than the odd column, fill from bottom to top
                    graph[i] += s.charAt(pStr++); 
                    if(pStr >= s.length()) break;
                }
            }
            
            for(int i = 0; i < numRows; i++){
                ret += graph[i];
            }
            return ret;
        }
    }
  • 相关阅读:
    js 抓取距离的方法
    mysql 设置账户权限
    mysql 主从复制
    mysql 分区
    linux 安装samba
    linux 配置lamp
    linux 本地虚拟机配置
    linux 权限
    linux 磁盘分区
    mysql-进阶 if/while/case
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/5483347.html
Copyright © 2011-2022 走看看