我可以将这个双变量 for 循环拆分为两个嵌套循环吗?

Can I split this two-variable for loop into two nested loops?

我想知道给定的 for 循环,我觉得它很奇怪:

for (int i = 0, j = s.length - 1; i < j; i++, j--)

到目前为止,我使用的是带有一个变量的 for 循环。但是在这个例子中,一个循环中有两个变量。

我可以将 for 循环分成两个嵌套循环吗?

for (int j = 0; j < s.length - 1; j--) {
    for (int i = 0; i < j; i++) {
    }
}

转换错误,正确的是:

int j = s.length - 1;
for (int i = 0; i < j; i++) {
    // inside logic
    j--;
}

没有
原作是这样的:

sssssss
i     j

sssssss
 i   j

sssssss
  i j

sssssss
   i
   j

它有例如 (s.length)/2 次迭代。并用 i 迭代一半,用 j 迭代另一半。

建议的替代方案是 2D,例如 (s.length*s.length)/2 次迭代(假设 j++ 而不是损坏的 j--) .它覆盖了一个三角形。

sssssss
j
ij
iij
iiij
iiiij
iiiiij
iiiiiij