找规律,需要注意一些细节
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
using namespace std;
string convert(string s, int numRows) {
string str = "";
for(int i = 1; i <= numRows; i++){
int j;
int flag = -1;
int flag3 = 1;
j = i-1;
int temp = 0;
while(j < s.size()){
flag3 = 1;
if(temp != j)
str += s[j];
temp = j;
if(flag == 1){
if(i-1){
flag3 = 0;
j += (i-1)*2;
}
flag = -1;
}
if(flag3 && flag == -1){
if(numRows-i)
j += (numRows-i)*2;
flag = 1;
}
}
}
return str;
}
int main(){
freopen("ztest.txt","r",stdin);
string str;
cin >> str;
cout << convert(str, 3);
}