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

    Runtime: 16ms

     1 class Solution {
     2 public:
     3     string convert(string s, int numRows) {
     4         if(numRows <= 1) return s;
     5         if(s.empty()) return s;
     6         
     7         string result;
     8         int size = 2 * numRows - 2;
     9         for(int i = 0; i < numRows; i++){
    10             for(int j = i; j < s.length(); j += size){
    11                 result += s[j];
    12                 if(i != 0 && i != numRows - 1){
    13                     int temp = j + size - 2 * i;
    14                     if(temp < s.length())
    15                         result += s[temp];
    16                 }
    17             }
    18         }
    19         return result;
    20     }
    21 };
  • 相关阅读:
    【Intellij Idea】设置JDK
    MarkDown换行
    Git 查看/修改用户名、邮箱
    JavaScript对象
    Javascript事件
    第十次会议
    第九次会议
    详细设计文档
    第八次会议
    第七次会议
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/4870605.html
Copyright © 2011-2022 走看看