In [2]:
numRows = 5
zigzag = []
for i in range(0, numRows):
    zigzag.append([])
print(zigzag)


[[], [], [], [], []]

In [4]:
s = 'PAYPALISHIRING'
for i in s:
    print(i)


P
A
Y
P
A
L
I
S
H
I
R
I
N
G

In [8]:
numRows = 3
s = 'PAYPALISHIRING' # test
#init zigzag list
lists = []
for i in range(0, numRows):
    lists.append([])
print(lists)

zigzag = 0
flag = '+'
for i in s:
    print(i,zigzag)
    lists[zigzag].append(i)
    if flag is '+':
        if zigzag + 1 < numRows:
            zigzag += 1
        else:
            #zigzag == max
            flag = '-'
    else:
        if zigzag > 0:
            zigzag -= 1
        else:
            flag = '+'

print(lists)


[[], [], []]
P 0
A 1
Y 2
P 2
A 1
L 0
I 0
S 1
H 2
I 2
R 1
I 0
N 0
G 1
[['P', 'L', 'I', 'I', 'N'], ['A', 'A', 'S', 'R', 'G'], ['Y', 'P', 'H', 'I']]

In [11]:
def convert(s, numRows):
    """convert zigzag

    i: string, numRows
    o: converted string
    solution: init n list for storing the string. then output
    """

    #init zigzag list
    lists = []
    for i in range(0, numRows):
        lists.append([])
    print(lists)

    zigzag = 0
    flag = '+'
    for i in s:
        print(i)
        lists[zigzag].append(i)
        if flag is '+':
            if zigzag + 1 < numRows:
                zigzag += 1
            else:
                #zigzag == max
                flag = '-'
                zigzag -= 1
        else:
            if zigzag > 0:
                zigzag -= 1
            else:
                flag = '+'
                zigzag += 1
    print(lists)

s = 'PAYPALISHIRING' # test
convert(s, 4)


[[], [], [], []]
P
A
Y
P
A
L
I
S
H
I
R
I
N
G
[['P', 'I', 'N'], ['A', 'L', 'S', 'I', 'G'], ['Y', 'A', 'H', 'R'], ['P', 'I']]

In [12]:
print (str(['P', 'I', 'N']))


['P', 'I', 'N']

In [13]:
s = 's'
s += 't'
print(s)


st

In [15]:
def convert(s, numRows):
    """convert zigzag

    i: string, numRows
    o: converted string
    solution: init n list for storing the string. then output
    """
    s = 'PAYPALISHIRING' # test
    #init zigzag list
    lists = []
    for i in range(0, numRows):
        lists.append([])
    print(lists)

    zigzag = 0
    flag = '+'
    for i in s:
        print(i)
        lists[zigzag].append(i)
        if flag is '+':
            if zigzag + 1 < numRows:
                zigzag += 1
            else:
                #zigzag == max
                flag = '-'
                zigzag -= 1
        else:
            if zigzag > 0:
                zigzag -= 1
            else:
                flag = '+'
                zigzag += 1

    zigzag_string = ''
    for i in lists:
        for j in i:
            zigzag_string += j
    print(zigzag_string)

s = 'PAYPALISHIRING' # test
convert(s, 4)


[[], [], [], []]
P
A
Y
P
A
L
I
S
H
I
R
I
N
G
PINALSIGYAHRPI

In [1]:
# -*- coding: utf-8 -*-
# Author Frank Hu
# LeatCode #6 ZigZag Conversion

class Solution:
    # @param {string} s
    # @param {integer} numRows
    # @return {string}

    def convert(self, s, numRows):
        """convert zigzag

        i: string, numRows
        o: converted string
        solution: init n list for storing the string. then output
        """
        s = 'PAYPALISHIRING' # test
        #init zigzag list
        lists = []
        for i in range(0, numRows):
            lists.append([])
        # print(lists)

        zigzag = 0
        flag = '+'
        for i in s:
            # print(i)
            lists[zigzag].append(i)
            if flag is '+':
                if zigzag + 1 < numRows:
                    zigzag += 1
                else:
                    #zigzag == max
                    flag = '-'
                    zigzag -= 1
            else:
                if zigzag > 0:
                    zigzag -= 1
                else:
                    flag = '+'
                    zigzag += 1

        zigzag_string = ''
        for i in lists:
            for j in i:
                zigzag_string += j
        #print(zigzag_string)
        return zigzag_string

t = Solution()
print(t.convert('PAYPALISHIRING', 4))
print(t.convert('PAYPALISHIRING', 3))
print(t.convert('PAYPALISHIRING', 1))
print(t.convert('PAYPALISHIRING', 5))


PINALSIGYAHRPI
PAHNAPLSIIGYIR
PAYPALISHIRING
PHASIYIRPLIGAN

In [ ]: