所以我的输入应该是一个 nxn (n<=20) 的单词矩阵,每个单词不超过 9 个字符。输出应该是一个字符串句子,通过从左上角开始以顺时针螺旋方式读取矩阵形成。在一些帮助下,我设法让它工作..虽然我仍然无法完全理解到底发生了什么。我完全不知道如何反过来做——从右下角开始逆时针螺旋。到目前为止,这是我的代码:
string s;
int hor = 0, vert = 0;
while (hor < n / 2 && vert < n / 2)
{
for (i = vert; i < n - vert; i++)
s = s + a[hor][i] + " ";
for (i = hor + 1; i < n - hor; i++)
s = s + a[i][n - vert - 1] + " ";
for (i = n - vert - 2; i >= vert; i--)
s = s + a[n - hor - 1][i] + " ";
for (i = n - hor - 2; i > hor; i--)
s = s + a[i][vert] + " ";
hor++;
vert++;
}
if (n % 2)
for (i = vert; i < n - vert; i++)
s = s + a[hor][i] + " ";
else
for (i = hor; i < n - hor; i++)
s = s + a[i][vert] + " ";
cout << s << endl;
有任何想法吗?难道没有更简单的方法可以做到这一点吗?