题目:
image.png
//6 Z字形变化 字符串 中等级
std::string convert(std::string s, int numRows)
{
if (numRows == 1 || s.size() <= numRows) {
return s;
}
vector<string> vec;
vec.resize(numRows);
int index = 0;
int flag = -1;
for (int i = 0; i < s.size(); ++i){
//cout << index << endl;
vec[index] = vec[index] + s[i];
if (i % (numRows - 1) == 0)
{
flag = -flag;
}
index += flag;
}
string temp = "";
for (int i = 0; i < vec.size(); ++i) {
temp += vec[i];
}
return temp;
}
这是一种朴素的方法做的,有两个注意点:
1、numRows为1的时候,或处罚if语句中分母为0,因此直接返回,当s的长度小于等于numRows时,也是直接返回的。
2、flag的变方向问题;
但是执行效率很差:
image.png
网友评论