zoukankan      html  css  js  c++  java
  • ZigZag-LeetCode

    题目:

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

    Zigzag:即循环对角结构.

    向下循环:nRows

    斜角线循环

    重复...

    #include <string>
    #include <iostream>
    using namespace std;
    
    string convert(string s,int nRows){
         if(nRows==1) return s;
             
             string res[nRows];
             int i==0,j,gap=nRows-2;
             
             while(i<s.size()){
                   for(j=0;j<nRows && i<s.size();j++) res[j]+=s[i++];
                   for(j=gap;j>0 && i<s.size();j--) res[j]+=s[i++];
             }
             
             string ret="";
             for(i=0;i<nRows;i++){
                 ret+=res[i];
             }
             return ret;
    }

     

  • 相关阅读:
    【leetcode】反转字符串
    【leetcode】反转字符串 II
    053-669
    053-668
    053-667
    053-666
    053-665
    053-664
    053-663
    053-662
  • 原文地址:https://www.cnblogs.com/sixue/p/3978236.html
Copyright © 2011-2022 走看看