zoukankan      html  css  js  c++  java
  • 6. ZigZag Conversion java solutions

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

    这题一上来就蒙,呵呵、、、每次做这种边界index 寻找的题目都很忧伤。。leetcode的 case 太多了。

     1 public class Solution {
     2     public String convert(String s, int numRows) {
     3         if(s == null || s.length() == 1 || numRows == 1) return s;
     4         StringBuilder ans = new StringBuilder();
     5         int size = 2*numRows - 2;
     6         for(int i = 0; i < numRows; i++){
     7             for(int j = i; j < s.length(); j += size){
     8                 ans.append(s.charAt(j));
     9                 if(i != 0 && i != (numRows - 1)){// 不在首行和尾行的情况
    10                     int tmp = j + size - 2*i;
    11                     if(tmp < s.length()) ans.append(s.charAt(tmp));// 加上中间的字符
    12                 }
    13             }
    14         }
    15         return ans.toString();
    16     }
    17 }
  • 相关阅读:
    Python 冒泡排序
    编程规范之注释篇
    编程规范之变量命名篇
    安装Django
    字典&列表的拓展理解
    小球落地
    Python结合sql登陆案例
    面向对象:两手交换牌
    每日一题(一)
    Web应用之LAMP源码环境部署
  • 原文地址:https://www.cnblogs.com/guoguolan/p/5629157.html
Copyright © 2011-2022 走看看