Leetcode 6.Z字形变换
题目:
题解:
找数学规律
字符串s 下标规律如下:
代码:
char * convert(char * s, int numRows){
int slen=strlen(s);
char* str=(char*)malloc(sizeof(char)*(slen+1));
str[slen]='\0';
int stri=0;//str数组的下标
if(numRows==1){
for(int i=0;i!=slen;i++)
str[stri++]=s[i];
}
else{
for(int i=0;i!=numRows;i++){
int j=i;
if(i==0||i==numRows-1){
while(j<slen){
str[stri++]=s[j];
j+=(2*numRows-2);
}
}
else{
while(j<slen){
if(j-2*i>=0)
str[stri++]=s[j-2*i];
str[stri++]=s[j];
j+=(2*numRows-2);
}
if(j-2*i>=0&&j-2*i<slen)//目的:检查示例二的R
str[stri++]=s[j-2*i];
}
}
}
return str;
}