题目大意:给定一串字符串,和一个行数numRows,将字符串按如下方式排列,比如,“1234567890123456”和4
1 7 3
2 6 8 2 4
3 5 9 1 5
4 0 6
再输出每一行组成的字符串,即“1732682436915406”。
思路:暴力求解,思想很简单,过程很麻烦。
将第一行和最后一行单独考虑,每行间隔为2*(n-1);
中间的(numRows-2)行,每一行中,先考虑垂直的列,相差也是2*(n-1);
再考虑斜着的数字,均比前面垂直的数增加2*(n-i-1)。
总结,很繁琐的一道题目,细心点就能搞定
代码:
char* convert(char* s, int numRows) {
int i=0,length=0,n=numRows,j=0,temp=0,temp1,temp2;
char* a;
while(*(s+i)!='\0') length++,i++;
a=malloc((length+1)*sizeof(int));
if(n==1) return s;
for(;j*2*(n-1)
temp2)?(temp1+1):(temp2+1);
}
for(j=0;n-1+j*2*(n-1)