zoukankan      html  css  js  c++  java
  • [leetcode] ZigZag Conversion *

     1 /*
     2  * Just find the rule; Do not forget to check
     3  * special cases (e.g. nRows = 1 ...)
     4  *
     5  * @author: HZT
     6  * @date: 2013-3-9
     7  */
     8 
     9 #include <iostream>
    10 #include <string>
    11 using namespace std;
    12 
    13 class Solution {
    14 public:
    15     string convert(string s, int nRows) {
    16         // Start typing your C/C++ solution below
    17         // DO NOT write int main() function
    18 
    19         // DO NOT forget this!!
    20         if(nRows == 1) return s;
    21         if(s.empty()) return s;
    22         int len = s.length();
    23 
    24         char* ans = new char[len+1];
    25 
    26         int idx, ansIdx=0;
    27         int delta = 2 * nRows - 2;
    28         // each row
    29         for(int r=1; r<=nRows; r++){
    30             idx = r;
    31             while(idx <= len){
    32                 ans[ansIdx++] = s[idx-1];
    33                 if(r!=1 && r!=nRows && 2*nRows-2*r+idx <= len){
    34                     ans[ansIdx++] = s[2*nRows-2*r+idx-1];
    35                 }
    36 
    37                 idx += delta;
    38             }
    39         }
    40 
    41         ans[len] = '\0';
    42         return ans;
    43     }
    44 };
    45 
    46 int main(){
    47     string s = "PAYPALISHIRING";
    48     int nRows = 3;
    49 
    50     //string s = "A";
    51     //int nRows = 1;
    52 
    53     cout << (new Solution)->convert(s, 3) << endl;
    54 
    55     return 0;
    56 
    57 }
  • 相关阅读:
    Vue3小知识
    Eslint小知识
    微信小程序注意点
    vue常用方法2
    vue常用方法
    vue组件常用方法
    013 --TypeScript之高级类型
    012--TypeScript之类型推断
    jenkins window unity 控制台输出中文乱码
    Unity 生成 Android App Bundle(aab) (二)
  • 原文地址:https://www.cnblogs.com/longdouhzt/p/2950991.html
Copyright © 2011-2022 走看看