class Solution(object):
def convert(self, s, numRows):
"""
:type s: str
:type numRows: int
:rtype: str
"""
strs={}
for ind in xrange(len(s)):
x,y= (2*ind)/(3*numRows/2),ind%(3*numRows/2)
if (ind%(3*numRows/2))>=numRows:
x+=1
y=2*(y-numRows)+1
if y not in strs:
strs[y]=s[ind]
else:
strs[y]+=s[ind]
ret=""
for ind in xrange(numRows):
ret+=strs[ind]
return ret
以上代码提交未通过,但个人不认为有错
1年前本人提交的C++解法(通过测试):
class Solution {
public:
string convert(string s, int numRows) {
if(numRows<=1) return s;
string ret;
//for(int i=0; i
{
for(int m=0; m
ret+=s[m];
}
for(int j=1; j
for(int m=j; m
ret+=s[m];
if(m+2*numRows-2-2*j
}
}
for(int m=numRows-1; m
ret+=s[m];
}
}
return ret;
}
}; 说明:题目中的字符排序规则并未说清楚,两种理解,两种结果...