UVA490 题解
Guizy
·
·
题解
给你一个由字符组成的矩阵,将它们顺时针翻转 90 ° 后输出这个矩阵(有空格的地方要补回空格)。
这题用 `char` 解决也不是不行,但是用 `string` 可以**更方便的处理**。
首先,我们使用 `getline` 读取一行,`getline` 的具体使用方法为:`getline(cin,str)`(`str`为要输入的 `string` 类字符串)。输入的时候,顺便统计每行字符串的最大长度。
然后我们做两重循环,第一重枚举长度 $i$,第二重枚举行数 $j$。如果当前枚举到的这一行的长度小于我们当前我们枚举到的长度,我们就输出空格,否则输出 $str_{j,i}$。
- ## 实现
```cpp
#include<bits/stdc++.h>
#define Max 1001
using namespace std;
int len=-1,n;
string str[Max];
int main(){
while(getline(cin,str[++n])){//++n记录行数
len=max(int(str[n].size()),len);
}
for(int i=0;i<len;i++){
for(int j=n-1;j>0;j--){
if(str[j].size()<i+1) printf(" ");
else printf("%c",str[j][i]);
}
printf("\n");
}
return 0;
}
```