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 }
  • 相关阅读:
    用户模板和用户场景
    人月神话阅读笔记02
    人月神话阅读笔记01
    软件工程周总结07
    NABCD
    软件工程周总结06
    软件工程周总结05
    tomcat端口被占用
    SQLyog出现2003错
    一维最大子数组和(续)
  • 原文地址:https://www.cnblogs.com/guoguolan/p/5629157.html
Copyright © 2011-2022 走看看