LeetCode 6. LeetCode6-Z 字形变换(找规律)-20200608-java
原题链接
中等
作者:
bmdxyn0725
,
2020-06-08 10:30:31
,
所有人可见
,
阅读 396
class Solution {
public String convert(String s, int R) {
if(R == 1) return s;
String res = "";
for(int i = 0; i < R; i++){
//第一行和最后一行,首项i, 公差2(R-1)
if(i == 0 || i == R-1){
for(int j = i; j < s.length(); j += 2*(R-1)){
res += s.charAt(j);
}
}else{
//1. 首项为i, 公差为2(R-1)
//2. 首项为2(R-1)-i, 公差为2(R-1)交替
for(int k = i, m = 2*(R-1)-i; k < s.length() || m < s.length(); k += 2*(R-1), m += 2 *(R-1)){
if(k<s.length()) res += s.charAt(k);
if(m<s.length()) res += s.charAt(m);
}
}
}
return res;
}
}