Advertisement
Gleeshoux

Untitled

Sep 17th, 2024
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.93 KB | None | 0 0
  1. string nLine(int LineIndex,string &s,int numRows){
  2. string line;
  3.  
  4. int firstSkip,secondSkip;
  5. firstSkip=2*(numRows-LineIndex)-3;
  6. secondSkip=2*LineIndex-1;
  7. line+=s[LineIndex];
  8.  
  9. for(int i=1,j=LineIndex;true;i++){
  10.     j++;
  11.     if(LineIndex==numRows-1)
  12.         j+=secondSkip;
  13.     else
  14.         j+=firstSkip;
  15.     if(j>=s.length())
  16.         break;
  17.     line+=s[j];
  18.     j++;
  19.     if(LineIndex==0)
  20.         j+=firstSkip;
  21.     else    
  22.         j+=secondSkip;
  23.     if(j>=s.length())
  24.         break;
  25.     line+=s[j];
  26.  
  27. }
  28.  
  29. return line;
  30. }
  31.  
  32. class Solution {
  33. public:
  34.     string convert(string s, int numRows) {
  35.         if(numRows>s.length())
  36.         numRows=s.length();
  37.         if(numRows==1)
  38.             return s;
  39.         string ZigZag;
  40.         if(s.length()==0)
  41.             return "";    
  42.         for(int i=0;i<numRows;i++){
  43.            
  44.         ZigZag=ZigZag+nLine(i,s,numRows);
  45.  
  46.         }
  47.        
  48.     return ZigZag;
  49.     }
  50. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement