Z字形字符串转换力扣6
class Solution {
public:
string convert(string s, int k) {
if(k<2) return s;
vector<string> row(k);//k是行数,每一行都用一个字符串数组存起来
int i=0,j;
int f=1;//标记起到的作用是告诉i指针你什么时候该加一什么时候该减一
for(j=0;j<s.size();j++){//遍历每一个字符
row[i].push_back(s[j]);//字符入栈。i是用来标记当前字符再N自行中所处的位置时端点还是中间
i=i+f;//
if(i==0||i==k-1) f=-f;//每每遇到端点就要进行折返,折返的表现是f变成相反数。
}
string c;
for(i=0;i<row.size();i++){
c=c+row[i];
}
return c;
}
};
//该方法的核心思想是将字符在脑子里按照Z字形展开,派一个i跟着他去移动,i每次该取什么值用f去提醒,i呀,你这会儿走到端点了,你加上的我这个f要变号了