6.jpeg

    代码 :

    1. class Solution {
    2. public:
    3. string convert(string s, int n) {
    4. string res = "";
    5. for(int i = 0; i < n; i ++ ) {
    6. // first and last row
    7. if(i == 0 || i == (n - 1)){
    8. for(int j = i; j < s.size(); j += 2 * n - 2) {
    9. res += s[j];
    10. }
    11. }
    12. else {
    13. for(int j = i, k = 2 * n - 2 - i; j < s.size() || k < s.size(); j += 2 * n - 2, k += 2 * n - 2) {
    14. if(j < s.size()) res += s[j];
    15. if(k < s.size()) res += s[k];
    16. }
    17. }
    18. }
    19. return res;
    20. }
    21. };
    22. /* gap
    23. 0 6 12 18 2n - 2
    24. 1 5 7 11 13 17 19 (i || 2n - 2 - i) + (2n - 2)
    25. 2 4 8 10 14 16 20 (i || 2n - 2 - i) + (2n - 2)
    26. 3 9 15 21 2n - 2
    27. */