6. Z 字形变换

这次是看了大佬的算法后自己用C++写出来的,虽然没有正确答案对照,更加费时,但是自己一点点实现想法来的更有成就感。(那个大佬是用的python写的,不然你以为我想!!!!)

class Solution {
public:
   
 string convert(string s, int numRows) {   //模拟实际人工书写操作
     if(numRows<2){                                             //若numRows=1,直接返回       
         return s;
     }
     string res[numRows];                                   // 用字符串存储每一行的字符
     int rowflag=0;                                                 //正在书写的行标
     bool direction=true;                                   //书写方向
     for(int i=0;i<s.size();i++){                                   
         
         res[rowflag]+=s[i]/*.append(s[i])*/;       //在对应行写入字符
         //下面增加行标和,对最低行和最顶行的判断和处理
         int rerowflag=rowflag;                                         
         if(direction){
             rowflag++;
         }
         else{
             rowflag--;
         }
         if((rowflag==numRows)||rowflag==-1){
             direction=!direction;
             rowflag=rerowflag;
             if(direction){
             rowflag++;
            }
         else{
             rowflag--;
            }
         }
    }
     string result;
     for(int i=0;i<numRows;i++){
         //cout<<"end"<<endl;
         cout<<res[i]<<endl;
         result+=res[i];
         cout<<result<<endl;
     }

     return result;
}
 };

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。