美文网首页
(二)Z字形变换(6)

(二)Z字形变换(6)

作者: coolTigers | 来源:发表于2020-03-25 00:00 被阅读0次

    题目:


    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

    相关文章

      网友评论

          本文标题:(二)Z字形变换(6)

          本文链接:https://www.haomeiwen.com/subject/onyzyhtx.html