leetcode第6题

# coding=utf-8
# This is a sample Python script.

# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
class Solution(object):
    def convert(self, s, numRows):
        """
        :type s: str
        :type numRows: int
        :rtype: str
        """
        def index_s(i,numsRows):
            """
            输入i和行数确定最终输出的行列坐标
            2n-1为周期,i与周期取模remainder,i与周期的商quotient
            remainder是0~n和n+1~2n-1,
            """
            period_N=2*numsRows-2
            #print 'period_N=%s'%period_N
            i_remainder=i%period_N
            i_quotient=i/period_N
            #print 'i_remainder=%s'%i_remainder
            if i_remainder<numsRows:
                c=i_quotient*period_N
                r=i_remainder
                print '竖行'
            else:
                c=i_quotient*period_N+(i_remainder-numsRows+1)*2#对了
                r=period_N-i_remainder#对了
                print '回行'
            print '第%s周期'%i_quotient
            return c,r
        dict_s=[]
        for i in range(len(s)):
            print 's[%s]=%s'%(i,s[i])
            c,r=index_s(i,numRows)
            dict_s.append([c,r,s[i]])
        print dict_s
        # for i in range(numRows):
        #     try:


a=Solution()
s="PAYPALISHIRING"
numRows=4
a.convert(s,numRows)

结果他不是打印矩阵啊!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值