【LeetCode】6. ZigZag Conversion

来源:互联网 发布:淘宝网买四轮电动车 编辑:程序博客网 时间:2024/05/01 09:05

6. ZigZag Conversion

 
 My Submissions
  • Total Accepted: 129677
  • Total Submissions: 500836
  • Difficulty: Easy
  • Contributors: Admin

The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

P   A   H   NA P L S I I GY   I   R
And then read line by line: "PAHNAPLSIIGYIR"

Write the code that will take a string and make this conversion given a number of rows:

string convert(string text, int nRows);
convert("PAYPALISHIRING", 3) should return "PAHNAPLSIIGYIR".

Subscribe to see which companies asked this question

向下循环:nRows
斜角线循环:nRows-2(减去首尾两个端点)
重复

string convert(string s, int nRows){    if(nRows == 1) return s;    string res[nRows];    int i = 0, j, gap = nRows-2;    while(i < s.size()){        for(j = 0; i < s.size() && j < nRows; ++j) res[j] += s[i++];        for(j = gap; i < s.size() && j > 0; --j) res[j] += s[i++];    }    string str = "";    for(i = 0; i < nRows; ++i)        str += res[i];    return str;}


0 0
原创粉丝点击