(二)Z字形变换(6)

2020-03-25  本文已影响0人  coolTigers

题目:


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
上一篇下一篇

猜你喜欢

热点阅读