(图片来源https://leetcode.com/problems/zigzag-conversion/
)
日期 | 是否一次通过 | comment |
---|---|---|
2020-02-13 |
insights:
- 周期性
- 有时候不好用求余操作时,可以考虑使用同周期/下一周期加减法
- 明确周期
- i 在行方向游走(同周期操作)
- j 在列方向游走(跨周期跳跃)
public String convert(String s, int numRows) {
if(numRows <= 1) {
return s;
}
int cycle = 2 * numRows - 2;
StringBuilder res = new StringBuilder();
for(int i=0; i<numRows; i++) {
for(int j=0; j+i<s.length(); j+=cycle) {
res.append(s.charAt(i+j));
if(i!=0 && i!=numRows-1 && j+cycle-i<s.length()) {
res.append(s.charAt(j+cycle-i));
}
}
}
return res.toString();
}