题解
2024-11-06 18:27:31
发布于:广东
29阅读
0回复
0点赞
首先要把这个二维数组顺时针旋转90°
利用m确定数组的行数(m就是n个字符串的长度的最大值),然后列数就是n,所以记新的数组为t[m]
把没有的字符先全部填充为*,然后后面特殊判断,如果最后一个字符是*,那么就下标减1遍历,直到这个字符是字母,遍历过的*全部替换为空格
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m=0;
cin >> n;
string s[n];
for (int i=0;i<n;i++)
{
cin >> s[i];
m=max(m,(int)s[i].size());
}
string t[m];
for (int j=0;j<m;j++)
{
for (int i=0;i<n;i++)
{
if (j<s[i].size())
t[j]+=s[i][j];
else
t[j]+='*';
}
reverse(t[j].begin(),t[j].end());
if (t[j][n-1]=='*')
{
int i=n-1;
while (t[j][i]=='*')
{
t[j][i]=' ';
i--;
}
}
cout << t[j] << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个