public class Solution { public String convert(String s, int numRows) { //本题通过画图numRows=4和numRows=5可以得到规则,主线路距离是2*numRows-2;辅助行是(numRows-i-1)*2 if(numRows<=1)return s;//注意判断 if(s.length()<=numRows) return s; StringBuilder res=new StringBuilder(); int index=0; for(int i=0;i<numRows;i++){//i表示行数,注意范围 for(index=i;index<s.length();index=index+numRows*2-2){ res.append(s.charAt(index)); if(i==0||i==numRows-1)continue;//注意首尾两行 if(index+(numRows-i-1)*2<s.length()){ res.append(s.charAt(index+(numRows-i-1)*2)); } } } return res.toString(); } }
时间: 2024-10-31 01:59:44